J.U.C工具包之Exchanger 目录 技术2020年8月4日 什么是Exchanger: 两个线程达到同步点后,相互交换数据,提供一个同步点,在这个同步点两个数据可以交换数据。 一个线程到达同步点会先被阻塞,直到另外一个线程到达同步点为止。 只能用于两个线程交换数据。 例子: 继续阅读 “J.U.C工具包之Exchanger”
J.U.C工具包之Semaphore 目录 技术2020年8月4日 什么是Semaphore: Semaphore俗称信号量,可以控制某个资源可被同时访问的线程个数。 通过acquire获取一个许可,如果没有就等待,一旦利用这个资源执行完业务逻辑之后,线程就会调用release方法释放一个许可出来。 例子: 继续阅读 “J.U.C工具包之Semaphore”
J.U.C工具包之CyclicBarrier 目录 技术2020年8月4日 什么是CyclicBarrier: CyclicBarrier可以在构造时指定需要在屏障前执行await的个数,所有对await的调用都会等待,直到调用await的次数达到预定指,所有等待都会立即被唤醒。 从使用场景上来说,CyclicBarrier是让多个线程互相等待某一事件的发生,然后同时被唤醒。而CountDownLatch是让某一线程等待多个线程的状态,然后该线程被唤醒。 例子: 继续阅读 “J.U.C工具包之CyclicBarrier”
J.U.C工具包之CountDownLatch 目录 技术2020年8月4日 什么是CountDownLatch: countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。 例子: 继续阅读 “J.U.C工具包之CountDownLatch”