博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习ReentrantLock
阅读量:5994 次
发布时间:2019-06-20

本文共 1057 字,大约阅读时间需要 3 分钟。

1. 使用ReentrantLock

import java.util.concurrent.locks.ReentrantLock;public class TestReentrantLock {  public static void main(String[] args) {    final ReentrantLock reentrantLock = new ReentrantLock(true);        reentrantLock.lock();    new Thread("Thread 1") {      public void run() {        for (int i = 1; i < 5; i++) {          reentrantLock.lock();          System.out.println(Thread.currentThread().getName() + " print " + i);          reentrantLock.unlock();        }      }    }.start();    new Thread("Thread 2") {      public void run() {        for (int i = 1; i < 5; i++) {          reentrantLock.lock();          System.out.println(Thread.currentThread().getName() + " print " + i);          reentrantLock.unlock();        }      }    }.start();    System.out.println(Thread.currentThread().getName() + " Done");    reentrantLock.unlock();  }}

结果为:

main DoneThread 1 print 1Thread 1 print 2Thread 1 print 3Thread 1 print 4Thread 2 print 1Thread 2 print 2Thread 2 print 3Thread 2 print 4

  

转载于:https://www.cnblogs.com/lixiaolun/p/8486798.html

你可能感兴趣的文章
C#进阶系列——WebApi 接口测试工具:WebApiTestClient
查看>>
VBS变量名和标识符的介绍(转)
查看>>
iOS:iOS开发系列–打造自己的“美图秀秀”(下)
查看>>
Linux虚拟地址空间布局以及进程栈和线程栈总结【转】
查看>>
ezjailserver备份和恢复方法
查看>>
NotifyMyFrontEnd 函数背后的数据缓冲区(二)
查看>>
【转】条件编译#ifdef的妙用详解_透彻
查看>>
清华大学 现代软件工程 - 实战经验分享
查看>>
国外购买域名
查看>>
.net Framework各个版本之间的发展
查看>>
iOS开发-图片高斯模糊效果
查看>>
发布一个嘿嘿嘿的技术方案 —— 商用群发p2p网络
查看>>
在微信小程序的JS脚本中使用Promise来优化函数处理
查看>>
JS写的漂亮只是一方面,你可不要忽视浏览器的兼容性呀!:P
查看>>
批处理作业调度-回溯法
查看>>
12.4. 包含网页
查看>>
Jenkins实现Android自动化打包
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.9
查看>>
[数学故事]国王的重赏
查看>>
Selenium2+python自动化63-简易项目搭建
查看>>