1. 首页
  2. 编程语言
  3. Java
  4. java 多线程-锁详解及示例代码

java 多线程-锁详解及示例代码

上传者: 2022-03-02 07:39:31上传 PDF文件 95.94 KB 热度 16次

Java 中的 synchronized 同步块是可重入的。如果一个线程已经拥有了一个管程对象上的锁,那么它就有权访问被这个管程对象同步的所有代码块。当前的判断条件是只有当 isLocked 为 false 时 lock 操作才被允许,而没有考虑是哪个线程锁住了它。在 unlock()调用没有达到对应 lock()调用的次数之前,我们不希望锁被解除。Java 的 synchronized 块并不保证尝试进入它们的线程的顺序。这种情况被称作线程饥饿。为了避免这种问题,锁需要实现公平性。这样可以保证这个锁对象可以被解锁以便其它线程能继续对其加锁。

下载地址
用户评论