如下代码段:
class T extends Thread {
T() { setDemon(true);}
int a, b;
run(){
synchronized(a)
{
.....
a.wait() ; //代码运行到这里.
}
synchronized(b)
{
b.wait();
}
}
}
class T2 {
public void test()
{ b.notifyAll() ;}
}
如果线程T运行到a.wait() 时, 另外一个函数执行了b.notifyAll() ,这个时候T这个线程该做什么?
是继续a.wait()进行等待么? 那这时候收到的notifyAll()会如何处理呢?
可否这样理解,即由于b的锁T没有获得,而此时T被放入a.的等待集中处于休眠状态, 因此T无法收到notiFyAll的信号。
class T extends Thread {
T() { setDemon(true);}
int a, b;
run(){
synchronized(a)
{
.....
a.wait() ; //代码运行到这里.
}
synchronized(b)
{
b.wait();
}
}
}
class T2 {
public void test()
{ b.notifyAll() ;}
}
如果线程T运行到a.wait() 时, 另外一个函数执行了b.notifyAll() ,这个时候T这个线程该做什么?
是继续a.wait()进行等待么? 那这时候收到的notifyAll()会如何处理呢?
可否这样理解,即由于b的锁T没有获得,而此时T被放入a.的等待集中处于休眠状态, 因此T无法收到notiFyAll的信号。
2883

被折叠的 条评论
为什么被折叠?



