
class Producer extends Thread { StringBuffer sb; boolean dataprodover = false;
Producer(){ sb = new StringBuffer(); } public void run(){ for(int i=1;i<=10;i++){ try{ sb.append(i+":"); Thread.sleep(100); System.out.println("appending"); }catch(InterruptedException ie){} } dataprodover=true; }
}
class Consumer extends Thread { Producer prod; Consumer(Producer prod){ this.prod=prod; } public void run(){ try{ while(!prod.dataprodover) Thread.sleep(10); }catch(InterruptedException ie){} System.out.println(prod.sb); } }
class Threadcom { public static void main(String[] args) { Producer pr = new Producer(); Consumer con = new Consumer(pr); Thread t1 = new Thread(pr); Thread t2 = new Thread(con); t2.start(); t1.start(); } }