摘要: 写在前面 前面三篇博客分别介绍了CyclicBarrier、CountDownLatch、Semaphore,现在介绍并发工具类中的最后一个Exchange。Exchange是最简单的也是最复杂的,简单在于API非常简单,就一个构造方法和两个exchange()方法,最复杂在于它的实现是最复杂的(本 阅读全文
posted @ 2018-03-08 14:08 qtyy 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 写在前面 Semaphore是一个计数信号量,它的本质是一个"共享锁"。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持有的信号量许可 阅读全文
posted @ 2018-03-08 12:46 qtyy 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 写在前面 CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。 注意比较CountDownLatch和CyclicBarrier: 阅读全文
posted @ 2018-03-08 10:36 qtyy 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 写在前面 CountDownLatch所描述的是”在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待“:用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程, 阅读全文
posted @ 2018-03-08 09:57 qtyy 阅读(261) 评论(0) 推荐(0) 编辑