摘要: 容器是所有编程中的基础工具,这其中也包括并发编程。出于这个原因,像Vector和Hashtable这类早期容器具有许多synchronized方法,当他们用于非多线程的应用程序中时,便会导致不可接受的开销。在Java1.2中,新的容器类库是不同步的,并且Collections类提供了各种static 阅读全文
posted @ 2017-04-21 11:21 soar_hu 阅读(626) 评论(0) 推荐(0) 编辑
摘要: Exchanger是两个任务之间交换对象的栅栏,当这些任务进入栅栏时,它们各自拥有一个对象,当它们离开时,它们都拥有之前由对象持有的对象。这两个线程通过exchange方法交换数据,如果第一个线程先执行exchange()方法,它会一直等待第二个线程也执行exchange方法,当两个线程都到达同步点 阅读全文
posted @ 2017-04-21 10:58 soar_hu 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 正常的锁在任何时刻都只允许一个任务访问一项资源,而计数信号量允许n个任务同时访问这个资源。 一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不 阅读全文
posted @ 2017-04-21 10:42 soar_hu 阅读(142) 评论(0) 推荐(0) 编辑