美文网首页程序员
Java - 线程阻塞/唤醒机制是怎么实现的

Java - 线程阻塞/唤醒机制是怎么实现的

作者: 夹胡碰 | 来源:发表于2021-01-14 22:33 被阅读0次

    Java中类库有很多阻塞实现,例如LinkedBlockingQueueCountDownLatch等,那么这些工具类怎么实现的线程阻塞/唤醒的呢?

    常见实现线程阻塞的方式有两种

    1. wait/notify机制
    2. LockSupportparkunpark机制

    通过追踪源码可以看到LinkedBlockingQueueCountDownLatch都是使用 LockSupportparkunpark机制,传统的wait/notify机制在jdk源码中使用的较少,基本都是基于AQS中的LockSupport实现阻塞/唤醒机制,也有ReentrantLockCondition结合实现的加锁阻塞/唤醒机制,例如'ArrayBlockingQueue',但ReentrantLockCondition机制底层也是使用LockSupport实现的。

    相关文章

      网友评论

        本文标题:Java - 线程阻塞/唤醒机制是怎么实现的

        本文链接:https://www.haomeiwen.com/subject/ydvbaktx.html