线程之间的通信方式

使用 volatile 关键字

基于volatile实现线程之间的通信方式是:使用了共享内存的思想,主要是依赖于MESI协议。

使用Object的wait和notify

object类提供了线程之间的通信方法:wait()、notify()、nofityall().但是他们必须和synchronized配合使用。主要是为了避免lost wake up 问题。

基于JUC并发包

CountDownlatch、ReentranLock结合condition,我的理解是底层都是依赖自旋方式实现。

基本LockSupport实现线程间的阻塞和唤醒

这个最好的解释其实就是AQS底层线程之间的阻塞和唤醒。

Java定时任务实现原理详解 https://www.jianshu.com/p/25eea3863d14

你可能感兴趣的:(线程之间的通信方式)