会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
码农的自我修养
不只做一个技术者,更要做一个思考者。 ——吴磊 (qq:2466845324)
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
12
下一页
2021年8月2日
深度解析 ReentrantLock
摘要: AQS实现原理 ReentrantLock和Synchronization一样是可重入锁,Synchronization是sun公司开发,而ReentrantLock是一个叫Doug Lea的人写出来的。它控制锁的状态是通过AQS(抽象队列同步器)来实现的,说白了就是 等待队列 + CAS。 (1)
阅读全文
posted @ 2021-08-02 13:45 吴磊的
阅读(591)
评论(0)
推荐(0)
2021年7月25日
LinkedBlockingQueue有界队列
摘要: 初始化 创建的时候,实际就是指定了队列大小 capacity,然后队列node其实就是个单向列表结构,item 是当前元素,next 是下一个元素的引用。默认head指针和last指针都是指向这个空节点。ps: 是不是有点责任链模式的感觉呢。 put put 从队列尾部插入节点 1. 首先也是获取到
阅读全文
posted @ 2021-07-25 16:24 吴磊的
阅读(535)
评论(0)
推荐(0)
2021年7月24日
ConcurrentLinkedQueue无界队列
摘要: ConcurrentLinkedQueue 是一个基于链表的无界线程安全队列,非阻塞实现方式,先进先出,适合高并发的场景。可以看出其底层就是一个单向链表结构。 offer offer从队尾插入元素 1. newNode 首先是将当前线程封装成一个node节点2. 进入for死循环,t为tail节点,
阅读全文
posted @ 2021-07-24 22:22 吴磊的
阅读(195)
评论(0)
推荐(0)
Semaphore信号量
摘要: Semaphore,等待指定数量的线程完成任务即可 public class A { private static SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 同步关键类,构造方法传入的数字是多少,则同一
阅读全文
posted @ 2021-07-24 13:16 吴磊的
阅读(81)
评论(0)
推荐(0)
2021年7月23日
分而治之的 CyclicBarrier
摘要: 案例 public static void main(String[] args) throws Exception{ Map<String,Object> map = new A().test(); for(Map.Entry<String, Object> e : map.entrySet())
阅读全文
posted @ 2021-07-23 23:52 吴磊的
阅读(73)
评论(0)
推荐(0)
2021年7月22日
CountDownLatch源码剖析
摘要: CountDownLatch 计数器设置默认的 count ,然后调用 await() 的线程会一直被挂起,直到 count 个线程都执行 countDown() 之后,被挂起的线程才会唤醒,接着走下面的逻辑。 public static void main(String[] args) throw
阅读全文
posted @ 2021-07-22 23:47 吴磊的
阅读(111)
评论(0)
推荐(0)
2021年7月21日
Condition 实现原理
摘要: Object 中可以通过 wait() 、notify() 来休眠唤醒。Condition 中同样可以实现这样的效果。 static ReentrantLock lock = new ReentrantLock(); static Condition condition = lock.newCond
阅读全文
posted @ 2021-07-21 15:41 吴磊的
阅读(166)
评论(0)
推荐(0)
超简单的ThreadLocal
摘要: 多线程访问同一个共享变量的时候容易出现并发问题,很多时候我们是通过加锁解决的。但是,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。那么这就要提到 ThreadLocal 了。比如很多公司做单点登录会用到 ThreadLocal ,通过拦截
阅读全文
posted @ 2021-07-21 14:10 吴磊的
阅读(96)
评论(0)
推荐(0)
2021年7月20日
ReentrantReadWriteLock 读写锁
摘要: ReentrantLock 中还有 ReentrantReadWriteLock 这么一个变种,读读不互斥,读写互斥,写写互斥。 写锁 一开始,就是 tryAcquire 获取锁,如果获取失败就返回 false ,那就走 addWaiter 将请求入队,然后 acquireQueued 挂起线程。和
阅读全文
posted @ 2021-07-20 14:20 吴磊的
阅读(117)
评论(0)
推荐(0)
2021年7月17日
Rancher容器编排
摘要: 什么是Rancher 是一个开源的企业级PaaS容器管理平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。可以使用任何公有云或者私有云的Linux主机资源。Linux主机可以是虚拟机,也可以是物理机Rancher仅需要主机有CPU,内存,本
阅读全文
posted @ 2021-07-17 15:27 吴磊的
阅读(789)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
12
下一页
公告
//生成目录索引列表