使用 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
网友评论