Concurrent Framework Synchronizer 同步器: Easy to use but easy to make dead lock as well

同步器是一些使线程能够等待另一个线程的对象, 以允许他们协调工作.

同步器的种类 CountDownLatch, Semaphore, CyclicBarrier and Exchanger.

 

CountDownLatch倒计数同步器是一个一次性障碍, 允许一个或多个线程等待一个或多个其它线程做完某件事情.

调用CountDownLatch(int number)构造器初始化计数.

在等待线程上调用CountDownLatch.await()以阻塞线程.

在工作线程上调用CountDownLatch.countDown()以减少计数, 当计数为0时激活其它所有等待线程.

在实际工作中根据业务逻辑的复杂度, 有可能同时有多个同步器存在, 多个线程的初始化, 执行, 收尾等如果需要多次等待则需要多个同步器.

在使用多个同步器时 可能出现死锁情形, 需要特别注意(很好用但也很危险).

posted @ 2013-12-31 18:07  D.Wang  阅读(157)  评论(0编辑  收藏  举报