ReentrantLock类是一个可重入互斥锁,它具有与使用synchronized()方法和语句访问隐式监视器锁相同的基本行为和语义,但是它的功能更强大。ReentrantLock由最近成功获得锁但是还未释放该锁的线程拥有。当锁并未被其他线程拥有时,申请锁的线程会获得该锁并返回。如果线程已经获得锁,该方法会立即返回。为了保证申请的锁能够及时释放,通常使用finally语句块的特性来释放锁。

基本结构:

public class Test{
private final ReentrantLock lock = new ReentrantLock();//获得ReentrantLock对象
public void update(){
lock.lock();//获得锁
try {
//需要并发的代码
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally{
lock.unlock();//释放锁
}
}
}

  附录:ReentrantLock与synchronized

最新文章

  1. .Net多线程编程—预备知识
  2. .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
  3. C#基础知识五之abstract virtual关键字
  4. window下安装pip工具,再利用pip安装工具来安装其他的python包
  5. Selenium2+python自动化16-alert\confirm\prompt
  6. HashTable的典型用法以及参考实例
  7. hdu5381 The sum of gcd
  8. vim使用札记
  9. linux 入侵检查转载
  10. typedef函数指针那些事
  11. Js把URL中的参数解析为一个对象
  12. docker使用Let’s Encrypt协议构建免费https协议
  13. weblogic上服务器建立
  14. C++11新特性(1)
  15. Laravel--Artisan常用命令
  16. webpack踩坑--webpack 2.x升级至4.x
  17. Java中子类和父类相关方法的执行顺序
  18. 使用 NumPy 和 Matplotlib 绘制函数图
  19. hadoop不同版本有哪些
  20. QT学习之路(1):彩票绝对不中模拟器

热门文章

  1. 找回使用过的QQ头像
  2. IIS6.0禁止用户下载txt文件
  3. jsp转发action的问题找不到acton
  4. js打开新页面 关闭当前页 关闭父页面
  5. OC: 类的扩展、类的延展、协议、 NSDate
  6. JAVA核心技术--继承
  7. CSS去除链接虚线(兼容IE6、IE7)
  8. 为DELL inspiron 14R安装CentOS X64 6.4
  9. Codeforces Round #146 (Div. 1) A. LCM Challenge 水题
  10. linux C(hello world) 二维数组的练习