当前位置: 首页 > Thinking in Java > 正文

第21章 – 并发 – 共享资源,原子操作

第21章 – 并发 – 共享资源,原子操作

 

1. 针对每一个类,也有一个锁(作为类的class的一部分),所以,synchronized static 方法可以在类的

   范围内防止对static字段的并发访问.(P667)

 

   显然,类class的锁和该类对象的锁不是同一个锁,所以不要在普通对象上调用类的static方法.

 

2. 原子性可用于除了long和double之外的所有基本变量类型(char,int,short,byte,float,boolean)之上的”简单操作”.(P680)

 

   原子类,来自java.util.concurrent.atomic 包中的类,如AtomicInteger,AtomicReference<V>等.

   使用这些类可以获取比volatile更强的读写原子性保证.在多线程写入和读取这些变量时不存在中间状态,即一个线程

   更新这些变量之后,更新可以立即在别的线程中生效.不存在 变量值在一个线程中更新了,而另一个线程依旧读到变量的

   值更新之前的旧值 这种情况.

 

   可以使用原子类来替代同步(synchronized),以提高性能.

 

   但通常依赖于锁要更安全一些(要么是synchronized关键字,要么显式使用Lock对象)

 

3. 线程本地存储java.lang.ThreadLocal

   可以将各个线程中变量与其他线程隔离开来,保证当前线程中的这个变量不受其他线程的影响.

 

打个赏呗

   微信打赏  支付宝打赏


本文固定链接: https://www.jack-yin.com/coding/thinking-in-java/2144.html | 边城网事

该日志由 边城网事 于2015年03月18日发表在 Thinking in Java 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 第21章 – 并发 – 共享资源,原子操作 | 边城网事
关键字: ,

第21章 – 并发 – 共享资源,原子操作 暂无评论

发表评论

快捷键:Ctrl+Enter