![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发
文章平均质量分 75
扬帆舟
生活就是工作,工作就是生活
展开
-
多线程环境下的计数器
package cn.com.test.vol.p201612;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.AtomicInteger;public class Counter { privat原创 2016-12-12 09:28:51 · 4803 阅读 · 0 评论 -
【synchronized关键词】高并发下地单例模式
单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。通常单例模式会这样写:package cn.com.test.p201612.test3;public class MemcachedUtil { private static MemcachedUtil instance原创 2016-12-12 11:37:45 · 758 阅读 · 0 评论 -
【synchronized关键词】从字节码层面解析
java中我们都知道synchronized关键字是用来加锁,在多线程并发情况下实现同步的,那它底层是怎么实现的呢?代码清单1-1public class SyncTest { public void test(){ synchronized(this){ System.out.println("-------call test() method---------")原创 2017-01-19 14:30:40 · 1874 阅读 · 0 评论 -
死锁
死锁(英语:Deadlock),又译为死结,计算机科学名词。当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。在多任务操作系统中,操作系统为了协调不同进程,能否获取系统资源时,为了让系统运作,必须要解决这个问题。死锁产生的条件:在上面的图片中,线程1持有一个资源R1,需要另一个资源R2来完成执行,但R2被线程2锁定,而线程2需要R3,而R...原创 2019-01-20 11:17:09 · 239 阅读 · 0 评论 -
【并发编程】CAS与FAA
在并发编程中,原子性操作无处不在,不管程序中是怎么实现原子性操作,底层都是通过CPU的指令来实现的,这里来介绍一下最著名的:CAS与FAA!CAS: 比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。 该操作通过将内存中的值与指定...原创 2019-04-24 11:15:44 · 2088 阅读 · 1 评论