package lock.readwrite;import java.util.concurrent.locks.ReentrantReadWriteLock;/*** 描述:     演示非公平和公平的ReentrantReadWriteLock的策略*/
public class NonfairBargeDemo {private static ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);private static ReentrantReadWriteLock.ReadLock readLock = reentrantReadWriteLock.readLock();private static ReentrantReadWriteLock.WriteLock writeLock = reentrantReadWriteLock.writeLock();private static void read() {System.out.println(Thread.currentThread().getName() + "开始尝试获取读锁");readLock.lock();try {System.out.println(Thread.currentThread().getName() + "得到读锁,正在读取");try {Thread.sleep(20);} catch (InterruptedException e) {e.printStackTrace();}} finally {System.out.println(Thread.currentThread().getName() + "释放读锁");readLock.unlock();}}private static void write() {System.out.println(Thread.currentThread().getName() + "开始尝试获取写锁");writeLock.lock();try {System.out.println(Thread.currentThread().getName() + "得到写锁,正在写入");try {Thread.sleep(40);} catch (InterruptedException e) {e.printStackTrace();}} finally {System.out.println(Thread.currentThread().getName() + "释放写锁");writeLock.unlock();}}public static void main(String[] args) {new Thread(()->write(),"Thread1").start();new Thread(()->read(),"Thread2").start();new Thread(()->read(),"Thread3").start();new Thread(()->write(),"Thread4").start();new Thread(()->read(),"Thread5").start();new Thread(new Runnable() {@Overridepublic void run() {Thread thread[] = new Thread[1000];for (int i = 0; i < 1000; i++) {thread[i] = new Thread(() -> read(), "子线程创建的Thread" + i);}for (int i = 0; i < 1000; i++) {thread[i].start();}}}).start();}
}

超越95%面试者的秘籍 part 1相关推荐

  1. 超越技术分析_超越技术面试

    超越技术分析 by Jaime J. Rios 由Jaime J. Rios 超越技术面试 (Transcending the Technical Interview) "Wow. What ...

  2. 嘘,这份0项目经验应对面试的独门秘籍,千万别被你的面试官发现~

    首先,在写这篇文章前,得先跟各位面试官道个歉. 没错,这篇文章就是要教你们的候选人如何在没有任何项目经验的情况下"瞒天过海",塑造一个实战大牛的形象. 毕竟项目经验实在太香了,手持 ...

  3. 一起来看看这份集齐vue2.0/vue3.0面试通杀秘籍(2021版) PDF,面试官问的源码问题绝对稳了!

    Vue3.0 对于我们前端人的重要性 -- 2021年面试必备 前言 2020年09月18日,vue3.0正式发布.随着它的发布,Vue.js再次被推上了前端的风口浪尖. 同时,面试官的提问也将加入一 ...

  4. 金三银四面试“超全秘籍”

    今天这篇文章完全围绕这"金三银四面试"来讲的! 今年的金三银四虽然才刚刚开始,但是小编已经仿佛感觉到尸横遍野的场景了,又不知道是多少小白被面试官无情"拷问",多 ...

  5. 2021最强Android中高级大厂面试源码秘籍,为你备战2022金三银四,直通大厂

    11.LottieAndroid使用详解及源码解析 12.Fresco 源码分析--图片加载流程 13.rxandroid 源码解析 14.SlidingMenu源码解析 15.PhotoView源码 ...

  6. Java并发编程工具

    第1节:什么是java并发编程.mp4 第2节:并发工具类有哪些.mp4 第3节:课程文档资料.pdf 第4节:线程池介绍.mp4 第5节:增减线程的时机.mp4 第6节:keepAliveTime和 ...

  7. 面试热问——你在前一份工作(实习)学到什么?

    "你在前一份工作(实习)学到什么?"面试官想通过这个问题获取什么信息?常见的答案有哪些?面试官对它们有何反应? 面试官提问的动机是什么? 动机就是了解求职者的学习能力.所谓&quo ...

  8. 谈谈现在软件测试行业的趋势和面试必备的东西

    随着这几年移动互联网行业的崛起,大量的创业公司开始涌现,也包括诞生了拼多多. 快手等这些互联网大厂.行业的崛起吸引了大量的资本和投资者入场,直接表现就是行业从 业人员待遇整体提升.尤其是校招更是每年开 ...

  9. 腾讯春招提前批面试经历(已收到offer)

    啊!!终于轮到我来写面经了!!经过了这么多天的煎熬,准确来说是从寒假就开始备战的春招,知道3.31在腾讯大厦走出来时才算结束.这期间多谢关璐姐的内推,内推期间真的是一直在烦她,也是她给了我这次内推机会 ...

最新文章

  1. 【前沿干货】2020人脸识别最新进展
  2. UPS不间断电源放电时间计算方法
  3. 杀软厂商开源--从此走向平台化?
  4. 分享一个近期遇到的逻辑漏洞案例
  5. es6 class语法糖
  6. 数据库表迁移到阿里云的方法有哪些
  7. 五类推荐系统算法,非常好使,非常全面
  8. AutoRunner 功能自动化测试项目实训之AutoRunner产品设计目标(三)
  9. 电脑分屏设置主屏_如何实现电脑屏幕分屏操作?
  10. 2021-03-27
  11. Win7桌面为什么变黑了?Win10未激活
  12. Allegro导出dxf
  13. 色彩搭配 — 总结1
  14. 白苹果修复_苹果手机突然屏幕变白怎么办
  15. 理解偏差(Bias)和方差(Variance)
  16. 2021-2025年中国工业锅炉行业市场供需与战略研究报告
  17. VB学习第四周续--四位整数逆序
  18. Oracle ORA-01653: 无法扩展表空间 (unable to extend table... in tablespace ...)
  19. Linux Let's Encrypt生成免费证书
  20. qq163音乐网归属问题释疑

热门文章

  1. 字典转模型的过程中,空值和id特殊字符的处理
  2. 洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)
  3. ExtJS 中自定义类
  4. Windows Serer 2003 配置手册 – 创建Active Dictionary域
  5. robot wireless communication
  6. 实现GridView的插入功能
  7. 【redismemcached】数据类型、内存管理、数据持久化和集群管理的区别
  8. jquery的$F()函数
  9. Web Api 如何做上传文件的单元测试
  10. 记录一下pom文件scope各种配置所作的行为