摘要: CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。CyclicBarrier默认的构造方法是 CyclicBarri 阅读全文
posted @ 2018-02-18 15:24 天涯过者 阅读(170) 评论(0) 推荐(0) 编辑
摘要: Lock,那是对synchronized的一种更为面向对象的替代,在原来的synchronized内部,我们可以调用object的wait与notify方法 condition一方面是对lock功能的补充(也就是说,你用了lock,为了保证线程的通信,就得用condition) 另一方面,synch 阅读全文
posted @ 2018-02-18 15:05 天涯过者 阅读(322) 评论(0) 推荐(0) 编辑
摘要: CompletionService用于提交一组Callable任务,其take方法返回已完成的一个Callable任务对应的Future对象。 如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以将每个任务的Future保存进一个集合,然后循环这个集合调用Futur 阅读全文
posted @ 2018-02-18 14:57 天涯过者 阅读(204) 评论(0) 推荐(0) 编辑
摘要: Future就是对于具体的Runnable或者Callable任务的执行结果进行取消、查询是否完成、获取结果。必要时可以通过get方法获取执行结果,该方法会阻塞直到任务返回结果。 Future类位于java.util.concurrent包下,它是一个接口: cancel方法用来取消任务,如果取消任 阅读全文
posted @ 2018-02-18 14:51 天涯过者 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 我们创建一个可扩展大小的线程池,并且需要在线程池内同时让有限数目的线程并发运行时,就需要用到Semaphore(信号灯机制),Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目,它是一个计数信号量,从概念上讲,信号量维护了一个许可集合,如有必要,在许可可用前会阻塞每一个acq 阅读全文
posted @ 2018-02-18 11:04 天涯过者 阅读(684) 评论(0) 推荐(0) 编辑