栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java Lock源码总结 Lock源码注释翻译和解析中英文对照版

Java 更新时间:发布时间: 百科书网 趣学号

版本
JDK8(JDK1.8)

Lock接口源码重点
1.Lock实现提供了比使用synchronized方法和语句更广泛的锁操作。它们允许更灵活的结构,可能具有完全不同的属性,并且可能支持多个关联的Condition对象。

2.随着灵活性的提高,还需要承担更多的责任。由于没有synchronized块结构锁,因此方法和语句不会自动释放锁。在大多数情况下,应使用以下模式:

Lock l = ...;
 l.lock(); 
 try {   
 	// 访问受此锁保护的资源
 } finally {  
  l.unlock(); 
 }

3.Lock接口定义了三种比较特别获取锁的方式

  • 获取非阻塞锁(即没获取到锁,线程也不阻塞等待)
  • 获取可被中断的锁
  • 获取可超时的锁

4.Lock 接口定义的部分方法

方法名作用
void lock()获得锁,没成功则使用该方法的线程阻塞,直到获取锁
void lockInterruptibly()获得锁,没成功则使用该方法的线程阻塞,直到获取锁或其他线程对当前线程调用了Thread.interrupt()使该线程进入中断状态(可中断锁)
boolean tryLock()尝试获得锁,成功则获得锁并返回true,否则返回false(非阻塞锁)
boolean tryLock(long time, TimeUnit unit)在给定时间内尝试获得锁,成功则获得锁并返回true,超时返回false(超时锁)
void unlock()释放锁,通常只有获得锁的线程可以释放锁

Lock接口源码

package java.util.concurrent.locks;

import java.util.concurrent.TimeUnit;


public interface Lock {

    
    void lock();

    
    void lockInterruptibly() throws InterruptedException;

    
    boolean tryLock();

    
    boolean tryLock(long time, TimeUnit unit) throws InterruptedException;

    
    void unlock();

    
    Condition newCondition();
}

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号