java - Why consumer is not consumin data in this program -


i'm new java , i'm trying implement simple producer consumer problem. below code i've written test it. have 3 classes, main class, producer class , consumer class. problem producer producing data consumer not consuming it. please explain me why happening. in advance.

public class producerconsumerwithqueue {     /**      * @param args      */     public static void main(string[] args) {          arraylist<string > queue = new arraylist<string>();                  producer producer = new producer( queue);                    consumer consumer = new consumer( queue);          consumer.start();         producer.start();        } }   public class producer extends thread{     arraylist<string> queue;         public producer(arraylist<string> queue) {         this.queue = queue;     }      public void run(){         system.out.println("producer started");         system.out.println("producer size "+queue.size());         for(int i=0;i<50;i++){             try {                     synchronized (this) {                                    if(queue.size()>10){                         system.out.println("producer waiting");                         wait();                     }else{                         system.out.println("producing "+i);                         queue.add("this "+i);                         notifyall();                     }                 }             } catch (interruptedexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             }          }     }  }  public class consumer extends thread{      arraylist<string> queue;      public consumer(arraylist<string> queue) {         this.queue = queue;     }      public void run(){         system.out.println("consumer started");         system.out.println("consumer size "+queue.size());             try {                 synchronized (this) {                                    for(int i=0; i>10; i++){                         if(queue.isempty()){                             system.out.println("consumer waiting()");                             wait();                          }else{                             system.out.println("consuming data "+queue.remove(i));                             notifyall();                         }                     }                 }             } catch (interruptedexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             }      }  } 

your consumer never run loop not run once

for(int i=0; i>10; i++){ 

check i>10 constraint. want try i<10


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -