一、线程的等待、通知
- 等待:Object.wait(), 通知:Object.notify()/Object.notifyAll()
- java的条件变量Condition,通过ReentranLock.newCondition创建
等待:Condition.await(),通知:Condition.signal()/Condition.signalAll() - CountDownLatch,一个线程等待其他线程的一组特定操作结束。
等待:CountDownLatch.await(),通知:CountDownLatch.countDown() - CyclicBarrier,线程间相互等待
等待、通知:CyclicBarrier.await()
二、生产者消费者模型
- 阻塞队列(传输通道),充当生产者消费者之间的传输介质,平衡他们之间的能力差异。
ArrayBlockingQueue:适用于生产者消费者并发低的情况
LinkedBlockingQueue:适用于生产者消费者并发高的情况
SynchronousQueue:适用于生产者消费者能力相差不大的情况 - Semaphore
三、线程的中断机制
- 发起线程通过Thread.interrupt()调用给目标线程发送中断。
- 目标线程通过Thread.isInterrupted()/Thread.interrupted()来获取、获取并重置线程中断标记。
网友评论