Java并发Lock和Condition

一.简介

Java SDK并发包通过Lock和Condition两个接口来实现管程,其中Lock用于解决互斥问题,Condition 用于解决同步问题。

二.原理

2.1 管程

在 Java 的 1.5 版本中,synchronized 性能不如 SDK 里面的 Lock,但 1.6 版本之后,synchronized 做了很多优化,将性能追了上来,所以 1.6 之后的版本又有人推荐使用 synchronized 了。

但是synchronized 自动加锁和解锁,无法解决破坏无可抢占的方案,基于这种情况Lock 应运而生,有三种方案:

  • 能够响应中断。synchronized 的问题是,持有锁 A 后,如果尝试获取锁 B 失败,那么线程就进入阻塞
posted @ 2020-11-15 17:20  Dlimeng  阅读(16)  评论(0)    收藏  举报  来源