黑马程序员技术交流社区
标题:
线程间是怎样实现同步和通讯的
[打印本页]
作者:
heheka123
时间:
2014-4-3 14:53
标题:
线程间是怎样实现同步和通讯的
我的认识是:将需要同步的代码进行封装,并在该代码上加了一个锁。
多个线程在处理同一个资源。 但是处理的动作(线程的任务)却不相同
等待唤醒机制中经典问题:生产者消费者问题。
问题在于两点:
1,本方唤醒了本方。
2,被唤醒的本方没有判断标记。只要将if判断该外while判断。
将if改为while循环判断标记后,出现了死锁。
因为本方唤醒了本方,而被唤醒的本方一判断标记,就继续等待。这样所有的线程都等待了。
必须唤醒对方才行,但是没有直接唤醒对方的动作,所以就使用了notifyAll,唤醒全部。
对吗??????求解
作者:
╰青青子佩ˊゝ
时间:
2014-4-3 21:11
将if改为while循环判断标记后,出现了死锁。(这个地方不能说出现了死锁,不是出现死锁)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2