java.util.concurrent常用类

CountDownLaunch

通常用于监听某些初始化操作,当初始化执行完毕后,通知主线程继续工作。

CountDownLatch countDownLatch = new CountDownLatch(2); 
// 只有调用两次countDownLatch.countDown(); await才能被唤醒;
countDownLatch.await();
doSomething();

CyclicBarrier

当所有线程都准备就绪后才一起执行。

CyclicBarrier cyclicBarrier = new CyclicBarrier(2);
// 只有调用两次cyclicBarrier.await(); await才能被唤醒;
cyclicBarrier.await();
doSomething();

Callable和Future

Semaphore

Semaphore semaphore = new Semaphore(5); // 并发的只有5个线程可以访问 
// 获取访问许可
Semaphore.acquire();  
doSomething();
// 访问完后,释放  
Semaphore.release();

https://juejin.im/post/5c89c93bf265da2de71391ec?utm_source=gold_browser_extension#heading-83

你可能感兴趣的:(java.util.concurrent常用类)