刘 佳 发表于 2012-10-15 13:09 ![]()
这个明白,就是老毕最后说的那段话没明白,什么synchronized怎么怎么样会导致嵌套同步死锁。然后lock就不 ...
因为Lock只有一个锁,当然不会死锁。
condition只是一个条件,这个条件可以认为是一个标记,具体是通过代码实现的。
condition是一个接口,通过Lock的newCondition与Lock绑在一块。
一个锁可以绑多个condition。
一个锁有多个条件,每个条件下面有多个线程,可以精确处理这个条件下的线程,让他们等待、唤醒等。
synchronized就不可以,因为它的等待、唤醒等都是使用的Object的方法,处理很粗糙。
才会出现同时唤醒所有,同时等待所有的情况,不能分条件处理。
condition很抽象,它不是自然事物,而是一种代码控制手段。
|