随笔分类 -  并发编程

并发编程,内容来自尚硅谷视频的一个总结
摘要:用于解决多线程安全问题的方式: synchronized:隐式锁 1. 同步代码块 2. 同步方法 jdk 1.5 后: 3. 同步锁 Lock 注意:是一个显示锁,需要通过 lock() 方法上锁,必须通过 unlock() 方法进行释放锁 阅读全文
posted @ 2018-03-03 17:44 代码改变心态 阅读(180) 评论(0) 推荐(0)
摘要: Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。  ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对 与多线程的操作,介于 HashMap 与 Hashtable 之间。内部采用“锁分段 阅读全文
posted @ 2018-03-03 17:15 代码改变心态 阅读(160) 评论(0) 推荐(0)
摘要:1 /* 2 * 模拟 CAS 算法 3 */ 4 public class TestCompareAndSwap { 5 6 public static void main(String[] args) { 7 final CompareAndSwap cas = new CompareAndSwap(); 8 9 ... 阅读全文
posted @ 2018-03-03 16:44 代码改变心态 阅读(202) 评论(0) 推荐(0)
摘要:原子变量: 在 java.util.concurrent.atomic 包下提供了一些原子变量。 1. volatile 保证内存可见性 2. CAS(Compare-And-Swap) 算法保证数据变量的原子性 CAS 算法是硬件对于并发操作的支持 CAS 包含了三个操作数: ①内存值 V ②预估 阅读全文
posted @ 2018-03-03 16:42 代码改变心态 阅读(138) 评论(0) 推荐(0)
摘要:volatile 关键字: 当多个线程进行操作共享数据时,可以保证内存中的数据可见。 相较于 synchronized 是一种较为轻量级的同步策略。 注意: 1. volatile 不具备“互斥性”: 互斥性:多个线程访问时,只能有一个线程可以拿到锁。 2. volatile 不能保证变量的“原子性 阅读全文
posted @ 2018-03-03 16:35 代码改变心态 阅读(124) 评论(0) 推荐(0)