![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
取名字咋这么难
这个作者很懒,什么都没留下…
展开
-
线程进程的通信
线程通信线程是cpu调度的基本单位,进程是资源分配的基本单位,一个进程有多个线程。线程之间怎样通信?volatile对线程通信,主要是保证修改对其他线程可见。而volatile能够保证修饰的变量对其他线程可见,防止指令重排序。跟多的信息请观看https://blog.csdn.net/tangjingui/article/details/107064235sychornized不管是sychornized还是ReentranLock都能保证多线程环境下,和单线程执行结果一样,但他们的原理原创 2020-08-08 16:56:40 · 303 阅读 · 0 评论 -
Java并发-----AQS(1)
AQS AbstractQueuedSynchronizer同步器,这也是ReentranLock实现锁的基础,如果不知道AQS,就很难理解锁到底是怎么实现的,当然这其中不包括通过synchronize获取的锁,当然我们入手点当然是ReentrantLock,通过ReentranLock lock = new ReentrantLock();一般来讲我们通过lock.lock()来获取锁,ReentrantLock public void lock() { sync.lock...原创 2020-07-05 20:50:16 · 142 阅读 · 0 评论 -
volatile
volatile是java的一个关键字,他可以修饰变量,对于java并发来讲,他有不可替代的作用。一概念的解释原子性:在提出这个概念的人当时认为,原子是最小的单位,不可分割,所以他的意思是,在一个原子范围内的操作要不都成功,要不都失败,不可分割。JMM:java 内存模型,java 内存模型是,一个进程内所有线程公用主内存,线程内部有私有内存,当操作时,线程会去主内存读取公共变量,拷贝副本到私有内存,当处理完成之后就会把私有内存的值写回主内存。其实线程私有内存是一个抽象概念,内部是通过缓冲区,寄原创 2020-07-01 16:25:15 · 130 阅读 · 0 评论