摘要: Exchanger是一个用于线程间协做的工具类,主要用于线程间的数据交换。它提供了一个同步点,在这个同步点,两个线程可以彼此交换数据。两个线程通过exchange方法交换数据,如果一个线程执行exchange方法,它就会等待另一个线程执行exchange方法,当两个线程都到达了同步点,这两个线程就可 阅读全文
posted @ 2017-11-18 12:02 木易森林 阅读(473) 评论(0) 推荐(0) 编辑
摘要: Semaphore(信号量)使用来控制通知访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 我们可以这么理解Semaphore,比如一个厕所只有6个坑,同时只能满足6个人上厕所(变态除外),其他人想蹲坑,只能排队等待,如果有人从厕所出来,后面的一个人就可以进去。在这个例子中人就 阅读全文
posted @ 2017-11-18 11:44 木易森林 阅读(1837) 评论(0) 推荐(0) 编辑
摘要: CyclicBarrier的字面意思是可以循环使用的Barrier,它要做的事情是让一个线程到达一个Barrier的时候被阻塞,直到最后一个线程到达Barrier,屏障才会放开,所有被Barrier拦截的线程才会继续运行。 CyclicBarrier的默认的构造器是CyclicBarrier(int 阅读全文
posted @ 2017-11-18 11:07 木易森林 阅读(429) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch允许一个或则多个线程等待其他线程完成操作。 假如我们有这样的需求:我们需要解析一个excel文件中的多个sheet,我们可以考虑使用多线程,每一个线程解析excel中的一个sheet表格,等所有的线程都完成解析之后,程序提示解析完成,输出解析结果。要实现这个需求,最简单的 阅读全文
posted @ 2017-11-18 10:14 木易森林 阅读(281) 评论(0) 推荐(0) 编辑