Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

等待/唤醒机制是多线程之间进行通信(同步)的一种方式,这里对它在Java中的使用做一个总结。

Objectwait()notify()

这个算是比较原始的一种等待/唤醒机制,这两个方法都是Object类中定义的方法,也就是说每个对象都拥有这两个方法。

它们一般都是和synchronized关键字配合使用的。

Condition接口

Condition接口是为了对Lock的一个等待/通知机制的实现。这里需要提一下,Lock接口是在synchronized后面提出的锁机制,相比于synchronzied关键字,它能够响应中断。而Condition正是为Lock中提供了等待/通知机制。

阻塞队列

阻塞队列也是一种线程间通信的方式,其核心在于两个线程互相通信去使用同一个队列,而这两个线程间的通信就是通过等待/通知机制完成的。在阻塞队列中,如果生产者线程发现当前队列满了,那么他就会调用await()方法,挂起生产者线程。当消费者线程从队列中消费了元素后,然后通过signal()方法唤醒生产线程。

评论