62,614
社区成员
发帖
与我相关
我的任务
分享
//group 是一个线程组,我想要这个线程组下面的所有线程等待``然后唤醒他们该怎么做?
Thread[] t = new Thread[group.activeCount()];
group.enumerate(t);
for (int i = 0; i < t.length; i++) {
synchronized (Worker.obj) {
t[i].wait();
}
}
System.out.println("公司该休息了....请明天再来!!!");
Thread.currentThread().sleep(3000);
System.out.println("公司休息完了...快来找工作!!!");
for (int i = 0; i < t.length; i++) {
synchronized (Worker.obj) {
t[i]..notify();
}
}
for (int i = 0; i < t.length; i++) {
synchronized (obj[i]) {
System.out.println("aaa");
t[i].wait(); //所有线程都在这人wait住了,又没有人叫他
System.out.println("BBB");
}
}
for (int i = 0; i < t.length; i++) {
synchronized (obj[i]) {
System.out.println("aaa");
t[i].wait();
System.out.println("BBB");
}
}
我这样的话 他会不停的输出AAA 但是 BBB 一次都不出现???为什么?
for (int i = 0; i < t.length; i++) {
synchronized (Worker.obj) {
t[i].wait();
}
}
for (int i = 0; i < t.length; i++) {
synchronized (Worker.obj) {
t[i].wait();
}
notify();//唤醒其它的线程。或者notifyAll() 唤醒所有线程
}