调用方法 | 退出条件 |
Object.wait() | Object.notify() / Object.notifyAll() |
Thread.join() | 被调用的线程(Thread)实行完毕 |
LockSupport.park() | - |
调用方法 | 退出条件 |
Thread.sleep() | 时间结束 |
设置了 Timeout 参数的 Object.wait() 方法 | 时间结束 / Object.notify() / Object.notifyAll() |
设置了 Timeout 参数的 Thread.join() 方法 | 时间结束 / 被调用的线程实行完毕 |
LockSupport.parkNanos() 方法 | - |
LockSupport.parkUntil() 方法 | - |
不同点 | synchronized | reentrantLock |
实现方式 | JVM | JDK |
性能 | 新版本 Java 对 synchronized 进行了大量的优化,大抵相同 | |
等待可制止 | 不可 | 可以 |
公平锁 | 非公平 | 默认非公平,支持公平锁 |
绑定多个条件 | 无 | 帮点多个 Condition 对象 |
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |