![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 63
Dylanioucn
想写一首关于世界的诗,以编程的方式~
展开
-
Oracle java官网关于可重入读写锁ReentrantReadWriteLock的解析
Oracle java官网关于可重入读写锁ReentrantReadWriteLock的解析1.[原文链接](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html)2.与ReadWriteLock的关系3.这个类有以下特性:1).Acquisition order(获取顺序)2).Reentrancy(可重入性)3).Lock downgrading(锁降级)4).In原创 2022-04-08 12:22:30 · 1107 阅读 · 0 评论 -
Oracle Java官网关于生产者消费者的示例解析
通过模拟现实生活中一边生产一遍消费的场景,来说明:通过给方法加锁、轮询条件是否满足、以及适时地协调线程间通信(wait/nofity)的方式,可以确保多线程间能够以一种正确且高效的方式访问共享资源原创 2022-04-07 12:22:26 · 2414 阅读 · 2 评论 -
synchronized与lock在原理、用法、是否阻塞、是否可响应中断、是否有超时机制、是否公平、是否支持并发读、可重入等方面的对比分析
synchronized与lock在原理、用法、是否阻塞、是否可响应中断、是否有超时机制、是否公平、是否支持并发取、可重入等方面的对比分析原创 2022-04-04 11:49:12 · 1624 阅读 · 1 评论 -
13行代码实现两个线程交替打印1-100内的整数(不加锁、递加取余判断),欢迎来挑战~
13行代码实现两个线程交替打印1-100内的整数,核心代码如下: private static int step = 0; public static void task(int max,int remainder){ while(step<=max) { if(step%2==remainder) System.out.println(Thread.currentThread().getName() + step++);原创 2022-01-14 21:03:22 · 230 阅读 · 0 评论 -
让星星⭐月亮告诉你,Thread.join底层源码到底是如何实现插队功能的?(synchronized+while(isAlive)+wait(0))
⭐⭐⭐解析Thread.join底层源码,分析如何保证调用它的线程实现插队功能????????????1、Thread.join方法加了synchronized关键字,为了和后面的wait(0)搭配使用;2、使用while循环检测调用join方法的插队线程是否还在运行,若还在运行,就调用wait(0)方法,假装释放锁后去排队了,其实时间参数传入的是0,也就是没去排队,还会继续循环执行这套逻辑;3、直到调用join的插队线程执行完毕die了,才会从循环中跳出,这时才算插队结束,才会回到被插队的线程中继续原创 2021-04-11 23:18:57 · 184 阅读 · 0 评论