
Java并发编程实践
chinaemerson
java大学学习中
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并发编程实践笔记——对象的共享之可见性
当读操作和写操作发生在不同的线程中,对共享变量的读和写操作会产生意料之外的结果。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。 加锁的含义不仅仅局限于互斥行为,还包括内存可见性。为了确保所有线程都能看到共享变量的最新值,所有执行读操作或者写操作的线程都必须在同一个锁上进行。 造成内存可见性问题的情况有: 1.编译器重排序。 当在没有同步机制保护的情况下...2013-05-06 21:15:19 · 108 阅读 · 0 评论 -
并发编程实践笔记——对象的共享之发布与逸出
发布 对象的发布是指:使对象能够在当前作用域之外的代码中使用。例如在一个非私有的方法中将私有属性的对象引用直接返回。 逸出 是指当某个不该被发布的对象被发布出去。例如,如果在对象完成构造之前就将其发布出去,就会破坏线程安全性。 警惕this引用逸出。当从对象的构造函数中发布对象的时候,只是发布了一个未构造完成的对象。在构造过程中使用this...原创 2013-05-07 20:58:16 · 161 阅读 · 0 评论 -
基础构建模块(一)之并发容器
Java5.0中增加了ConcurrentHashMap用来替代同步且基于散列的Map,以及CopyOnWriteArrayList,用于在主要操作为遍历的情况下代替同步的List。在新的ConcurrentMap接口中增加了一些常用的复合操作支持,例如“如果没有则添加”,替换以及有条件删除等。 使用并发容器来代替同步容器,可以极大的提高系统伸缩性并降低风险。 Java5.0中增加了两...原创 2013-05-23 20:36:21 · 192 阅读 · 0 评论