随笔分类 - 并发编程
摘要:什么是CAS CAS(compareAndSwap),中文名称比较和替换,是一种无锁原子算法。 CAS过程 它包含3个参数CAS(V、E、N) V 代表要更新变量的值 E 代表预期值 N 代表新值 仅当V值等于E值时,才会将V的值设为N; 如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程
阅读全文
摘要:单例模式 多个线程称操作不同实例对象。多个线程要操作同一个对象,要保证对象的唯一性。 实例过程中只实例化一次。 饿汉式 ==说明== 因为static关键字,在类加载的时候已经被实例化,所有只有一个实例,是线程安全的。 ==缺点== 没有延迟加载 长时间不使用,占用空间 懒汉式 ==说明== if判
阅读全文
摘要:volatile 1、volatile 保证多线程数据的可见性 2、机器硬件CPU与JMM (1) CPU 缓存模型 程序的局部执行原理 (2) CPU缓存一致性问题 每个CPU修改内存数据的步骤 1、从内存中把数据读到cache中,并放到寄存器中进行操作 2、在cache中更新数据 3、把更新的结
阅读全文
摘要:1、概念 synchronized是利用锁的机制来实现同步的。 锁机制的两个特性: 互斥性(原子性) 即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。 可见性 必须确保在锁被释放之前,对共享变量所做的修改
阅读全文
摘要:1、基本概念 程序:代码,完成某一任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2、JVM与线程 JVM虚拟机在类被调用的时候启动 先启动JVM线程 其他线程(main线程) 3、JVM内存区域 方法区 主要存
阅读全文

浙公网安备 33010602011771号