黑马程序员技术交流社区
标题:
同步函数里的疑难杂症 求大神赐教!!!!!
[打印本页]
作者:
腹黑生姜
时间:
2015-6-30 20:56
标题:
同步函数里的疑难杂症 求大神赐教!!!!!
class StopThread implements Runnable{
private boolean flag = true;
public synchronid void run(){
while(flag ){
try{
wait();
} catch(InterruptedException e){
System. out.println(Thread.currentThread().getName() + "..." + e);
}
System. out.println(Thread.currentThread().getName() + "......");
}
}
public void setFlag(){
flag = false ;
}
}
线程0一进来wait()了,冻结了,放弃了资格
但是我不懂得是为什么线程1还能进来???这是毕老师视频里讲的 不懂?不是说同步的时候只能进一个吗 ! 为什么???
作者:
守门员
时间:
2015-7-1 09:31
你也知道wait()是等待并放弃了资格,放弃了执行资格就是把同步的锁放弃了,所以另外一个线程进来了,notify()是唤醒线程,并获取同步的锁
作者:
腹黑生姜
时间:
2015-7-1 09:37
守门员 发表于 2015-7-1 09:31
你也知道wait()是等待并放弃了资格,放弃了执行资格就是把同步的锁放弃了,所以另外一个线程进来了,notif ...
懂了!我以前一直以为wait和sleep功能是一样的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2