老毕视频中的,有有点疑问。同步函数的wait方法后面怎么可以有两个线程等待?同步中不是只能一个进一个出吗
线程的状态:冻结(等待,睡眠),放弃了执行资格。
synchonized(){
Thread.sleep(10);//t1睡眠,别的线程进不来,只能等线程醒来。
}
public synchronized void consume() {
if(!flag){
try {
wait();//t1线程等待,t2线程等待。问题:t1等待了,t2能进来吗,等待和睡眠bu一样吗?
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} |
|