全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

线程的互斥同步方式有哪些? 如何比较和选择?

发布时间:2022-09-14 15:52:08
发布人:wjy

  Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。

  1. 锁的实现

  synchronized 是 JVM 实现的,而 ReentrantLock 是 JDK 实现的。

线程的互斥同步方式有哪些? 如何比较和选择?

  2. 性能

  新版本 Java 对 synchronized 进行了很多优化,例如自旋锁等,synchronized 与 ReentrantLock 大致相同。

  3. 等待可中断

  当持有锁的线程长期不释放锁的时候,正在等待的线程可以选择放弃等待,改为处理其他事情。 ReentrantLock 可中断,而 synchronized 不行。

  4. 公平锁

  公平锁是指多个线程在等待同一个锁时,必须按照申请锁的时间顺序来依次获得锁。 synchronized 中的锁是非公平的,ReentrantLock 默认情况下也是非公平的,但是也可以是公平的。

  5. 锁绑定多个条件

  一个 ReentrantLock 可以同时绑定多个 Condition 对象。

相关文章

做视频创作者怎么赚钱?个人怎么靠流量赚钱?

2023-09-19

怎样投抖加不花钱?别人能看出来吗?

2023-09-19

抖店怎么拦截快递?线下结算是什么?

2023-09-19

抖店平台商户被退店还能退货吗?如何提高评分?

2023-09-19

抖店入驻收费多少?开抖店费用是多少?

2023-09-19

想做直播带货的货源哪里来?怎么找货源?

2023-09-19
在线咨询 免费试学 教程领取