![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effectiveJava
iteye_14840
这个作者很懒,什么都没留下…
展开
-
线程安全性5种级别
线程安全性5种级别 1. 不可变 不变的对象绝对是线程安全的,不需要线程同步,如String、Long、BigInteger 2. 无条件的线程安全 对象自身做了 足够的内部同步,也不需要外部同步,如 Random 、ConcurrentHashMap、Concurrent集合、atomic 3. 有条件的线程安全 对象的...2011-09-09 15:48:33 · 644 阅读 · 0 评论 -
EffectiveJava2 第66条:同步访问共享的可变数据
保证线程安全方法 : 1, 不要跨线程访问共享变量 2, 使共享变量是 final类型的 3, 将共享可变数据的操作加上同步 当多线程共享可变数据时,每个读或者写的线程都必须执行同步。 可变数据同步方法: 1. synchronized 2. volatile 共享原子数据,非原子操作也要同步 3. ReentrantLock锁 4. Atomic...2011-09-09 15:50:50 · 123 阅读 · 0 评论 -
EffectiveJava2第67条:避免过多同步
第67条:避免过多同步 66条说了不同步的危险,本条讲的是过度同步的问题。过度同步,可能性能降低、死锁、或不确定的行为。 并发程序第一步要保证正确,第二步才是性能。 不能在同步区域内调用外部方法,缩小同步的代码范围。 反面教材 集合Iterator时不能 remove元素否则会产生并发修改异常 ConcurrentModificationException //...原创 2011-09-09 15:52:13 · 113 阅读 · 0 评论