А именно, может кто-то говорить мне что не так с этой частью кода. Это должно запустить потоки, печать "Ввод потока - также.." 5 раз и затем ожидайте, до notifyAll () назван. Но, это случайным образом печатает "Ввод.." и "Сделанный.." и все еще заставляет ждать на других.
public class ThreadTest implements Runnable {
private int num;
private static Object obj = new Object();
ThreadTest(int n) {
num=n;
}
@Override
public void run() {
synchronized (obj) {
try {
System.out.println("Entering thread "+num);
obj.wait();
System.out.println("Done Thread "+num);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Runnable tc;
Thread t;
for(int i=0;i<5;i++) {
tc = new ThreadTest(i);
t = new Thread(tc);
t.start();
}
synchronized (obj) {
obj.notifyAll();
}
}
}