I am trying to use 2 threads. 1 thread prints only odd number and the other thread prints only even number and It has to be an alternative operation.
Eg:
Thread1 1 Thread2 2 Thread1 3 Thread2 4 and so on.. Below is the program, please let me know where I am going wrong as the thread1 is not coming out of wait state even when the thread2 is notifying it..
public class ThreadInteraction { public static void main(String[] args) { new ThreadInteraction().test(); } private void test() { ThreadA ta = new ThreadA(); Thread t = new Thread(ta); t.start(); try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printStackTrace(); } for(int i=2;i<=50;){ System.out.println("Thread2 "+i); synchronized (t) { try { t.notify(); t.wait(); } catch (Exception e) { e.printStackTrace(); } } i=i+2; } } } class ThreadA implements Runnable{ @Override public void run() { for(int i=1;i<50;){ System.out.println("Thread1 "+i); synchronized (this) { try { notify(); wait(); } catch (InterruptedException e) { e.printStackTrace(); } } i=i+2; } } }