
并发编程
文章平均质量分 75
classfly一号机
喜欢研究高并发场景下的可靠性解决方案。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并发编程系列之CLH锁
CLH加锁&解锁流程CLHLock作为自旋、公平并发锁,其实现思路较为简单。文中使用了ThreadLocal结构来维护每个线程的当前结点(CurrentNode)和前驱结点(PrevNode)信息。当前线程通过调用lock()方法,在前驱结点的voliate变量lock自旋,实现对共享资源的监听。如图所示,在线程尝试取锁时,会在调用ThreadLocal.get()方法内部构造...原创 2018-07-03 00:41:26 · 360 阅读 · 0 评论 -
JUC初探之ConcurrentHashMap(未完)
JUC初探之ConcurrentHashMap摘要本文从HashMap的演变、内部存储数据结构、put/get/扩容操作以及线程安全几个方面讲解HashMap,并重点讲解ConcurrentHashMap的内部实现原理。前言参照JDK的发展历史,最早我们使用HashTable和HashMap结构实现了键值存储数据结构。随着业务发展,系统功能增加,引入了多线程处理来提高系统性...原创 2018-07-12 13:23:49 · 384 阅读 · 0 评论 -
理解并正确使用synchronized和volatile
线程安全需要同时满足三个条件:原子性 某个操作是不可中断的,且要么全部做完要么没有执行。可见性 通过volatile关键字修饰变量实现。读取volatile变量时,先失效本地缓存再读取主存中的最新值;更新volatile变量会立即将最新值刷回主存。有序性 JMM的happens-before原则。volatile能保证其修饰的变量的线程可见性但无法保证操作原子性,只能用于”多...原创 2018-07-06 23:59:45 · 250 阅读 · 0 评论