ciao a tutti
guardate questo programma...ci sono 2 thread, un lettore e uno scrittore...il lettore è molto piu veloce..eppure come è possibile che non da segni di output quando viene eseguito e lo scrittore ha prodotto il suo output?
codice:import java.io.*; class Sender extends Thread { private Writer out; public Sender (Writer w) {out = w;} public void run() { for (char c = 'A'; c <= 'F'; c++) try { System.out.println("scrivi " + c); out.write(c); sleep(1000); } catch (IOException e) {} catch(InterruptedException e) {} } } class Receiver extends Thread { private Reader in; public Receiver (Reader r) {in = r;} public void run() { try { while (true) { sleep(10); System.out.println("leggi " + (char)in.read()); } } catch(IOException e) {System.out.println("fine input");} catch(InterruptedException e) {System.out.println("XXX");} } } class Pipe { public static void main(String[] args) { PipedWriter out = new PipedWriter(); PipedReader in = null; try { in = new PipedReader(out); } catch(IOException e) {} new Receiver(in).start(); new Sender(out).start(); } }