随笔分类 -  Java并发编程的艺术

摘要:ReentrantLock与synchronized一样都可以用来控制多线线程对共享资源的访问。 synchronized关键字是隐式的获得锁,即进入synchronized方法或者synchronized代码会自动的获得锁,离开同步方法或者同步代码块自动释放锁。 ReentrantLock相对于s 阅读全文
posted @ 2018-10-03 20:02 使用D 阅读(167) 评论(0) 推荐(0) 编辑
摘要:原子操作atomic operation是“不可中断的一个或者一系列操作”。 1、术语 缓存行: 缓存的最小操作单位。 比较并交换(Compare and Swap): CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较旧值有没有变化,如果没有变化,才交换成新值,旧值 阅读全文
posted @ 2018-09-12 23:01 使用D 阅读(668) 评论(0) 推荐(0) 编辑
摘要:1、在多线程并发编程中synchronized一直被称为重量级锁,但是随着Java se1.6 对synchronized进行了各种优化后,有些情况下它就并不那么重了。 synchronized实现同步的基础:每个对象都可以作为锁,具体分为三种情况: 对于普通同步方法,锁的是自己实力对象 对于静态同 阅读全文
posted @ 2018-09-11 00:12 使用D 阅读(201) 评论(0) 推荐(0) 编辑
摘要:volatile是轻量级的synchronized,它在多处理开发中保证了共享变量的“可见性”。 可见性是指当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低。 成本低的原因是:volatile 阅读全文
posted @ 2018-09-10 22:12 使用D 阅读(458) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示