I am trying to send a notify to an available Thread (first Thread i can find in a pool currently in a WAITING state), but am unable to. I am trying to send the notify alert to a thread running in a separate class, although this class is included in the same package. Here is the Server.java file from which I am trying to notify my available thread:
***************Server.java*********************** package dir.test; import java.util.ArrayList; import java.util.LinkedList; public class Server { static private final int THREADCOUNT=5; public static void main(String[] args) throws InterruptedException { ArrayList<Thread> objThreads = new ArrayList<Thread>(THREADCOUNT); for (int i=0; i<THREADCOUNT; i++) { objThreads.add(i, new Thread(new ObjThread(1))); objThreads.get(i).start(); } try { for (int i=0; i<objThreads.size(); i++) { if ( (objThreads.get(i).getState())==Thread.State.WAITING ) { System.out.println("Thread " + i + " is in state: WAITING."); objThreads.get(i).notify(); System.out.println("Thread " + i + " has been notified."); } } } catch (Exception e) { e.printStackTrace(); } catch (Throwable t) { System.err.println("Caught throwable t: " + t); } } } ********************************************** and here's the ObjThread.java file... ***************ObjThread.java*********************** package dir.test; import java.lang.Runnable; import java.util.*; public class ObjThread implements Runnable { private int int_var; public ObjThread(int int_var) { this.int_var = int_var; } public synchronized void run() { while ( true ) { try { System.out.println("test...before wait"); wait(); System.out.println("test...after wait. int variable value: " + int_var); } catch ( InterruptedException e ) { } } } } ********************************************** The thread never gets to the statement: System.out.println("test...after wait. int variable value: " + int_var); My output is: $ java dir.test.Server test...before wait test...before wait test...before wait test...before wait test...before wait Thread 0 is in state: WAITING. java.lang.IllegalMonitorStateException at java.lang.Object.notify(Native Method) at cscie160.test.Server.main(Server.java:23) Any idea how I can wake a thread from a WAITING state with this file structure so it can resume it's work? -- You received this message because you are subscribed to the Google Groups "Java EE (J2EE) Programming with Passion!" group. To post to this group, send email to java-ee-j2ee-programming-with-passion@googlegroups.com To unsubscribe from this group, send email to java-ee-j2ee-programming-with-passion+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/java-ee-j2ee-programming-with-passion?hl=en?hl=en