![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
少华不加班
不要总说自己是加班狗,狗都不加班。
展开
-
ThreadLocal实现
1: ThreadLocal实现原理 多线程同时访问一个共享变量时容易出现并发问题 , 特别多线程需要一个共享变量进行写入的时候 ,为了保证线程安全, 一般需要使用者在访问共享变量的时候进行适当的同步, 如下图: 同步的措施一般是加锁, 这就需要使用者对锁有一定的了解, 那么有没有一个方式,在创建一个变量时候,每个线程对其进行访问的时候访问的...转载 2018-06-29 14:10:50 · 341 阅读 · 0 评论 -
深入分析synchronized的实现原理
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。 诚然,随着Javs SE...转载 2018-07-30 11:00:07 · 120 阅读 · 0 评论 -
深入分析volatile的实现原理
出处:http://www.cnblogs.com/dolphin0520/ 内存模型相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何...转载 2018-07-30 11:24:24 · 270 阅读 · 0 评论 -
深入分析CAS
原文出处: https://blog.csdn.net/chenssy/article/details/69640293 CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以CAS实现的,甚至ConcurrentHashMap在1.8的版本中也调整为...转载 2018-07-30 14:25:08 · 346 阅读 · 0 评论 -
java多线程并发相关的一道上机面试题
public class TestAlgorithm1 { /** * 数组A为1,2,3,4,5,6,...52 * 数组B为 26个英文字母 * 用两个线程分别输出12a23b.... * * * * 可以使用自旋锁, lockSupport , 以下使用 自旋锁 */ public stat...原创 2018-07-31 10:21:26 · 1236 阅读 · 0 评论