06 2017 档案
摘要:阻塞队列提供了可阻塞的put和take方法。如果队列满了put将阻塞到有空间可用,如果队列为空,take将阻塞到有元素可用。队列可以是有界和无界的,无界的队列put将不会阻塞。 阻塞队列支持生产者消费者模式,该模式将找出需要完成的工作,和执行工作分开。生产者-消费者模式能简化开发过程,因为消除了生产
阅读全文
摘要:同步容器将所有对容器状态的访问都串行化,以实现线程安全性。这种方式的缺点是严重降低并发性。Java 5.0提供了多种并发容器来改进同步容器的性能。如ConcurrentHashMap代替同步且基于散列的Map,CopyOnWriteArrayList,用于在遍历操作主要操作的情况下代替同步的List
阅读全文
摘要:java平台类库包含了丰富的并发基础构建模块,如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类。 同步容器类 同步容器类包括Vector和Hashtable,是早期JDK的一部分,此外还有Collections.synchronizedXXX等工厂方法创建的。这些类实现安全的方
阅读全文
摘要:通过一些组合模式能够使一个类更容易成为线程安全的,并且易于维护。避免复杂的内存分析来确保线程是安全的。 设计一个线程安全的类要报案下面三个要素: 1、找出构成对象的状态的所有变量。 对象的所有域构成了对象的状态。如果对象的域是基本变量构成,那么这些域构成了对象的全部状态。如果对象的域中引用了其他对象
阅读全文