并发编程
文章平均质量分 95
温柔的皮卡丘
这个作者很懒,什么都没留下…
展开
-
并发编程之CAS
CAS(Campare And Swap,比较并交换),通常指一种原子操作:针对一个变量,首先比较它的内存值与期望值是否相同,相同就给它赋一个新值。上面的伪代码描述了一个由比较和复制的两个阶段组成的复合操作,实际上,CAS可以看成是他们的一个整合体,一个不可分割的原子操作,由硬件层面来保障原子性。CAS可以看做是乐观锁的一种实现,我们Java中的原子中的递增操作就通过CAS自旋实现的。CAS是一种无锁算法,在没锁的情况下,也就是不阻塞线程的情况下,实现多线程之间的变量同步。原创 2022-11-11 00:49:37 · 200 阅读 · 1 评论 -
并发编程之深入理解Java线程
join可以理解成是线程合并,当在一个线程调用另一个线程的join方法时,当前线程阻塞等待被调用join方法的线程执行完毕才能继续执行,所以join的好处能够保证线程的执行顺序,但是如果调用线程的join方法其实已经失去了并行的意义,虽然存在多个线程,但是本质上还是串行的,最后join的实现其实是基于等待通知机制的。线程执行时间系统可控,也不会有一个线程导致整个进程阻塞。:是指线程之间所具有的的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。原创 2022-10-30 00:46:45 · 193 阅读 · 0 评论 -
并发编程之深入理解JMM&并发三大特性
Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。JMM描述的是一种抽象的概念,一组规则,通过这组规则控制程序中各个变量在共享数据区域和私有数据区域的访问方式,JMM是围绕原子性、有序性、可见性展开的。原创 2022-10-29 22:25:06 · 176 阅读 · 0 评论