首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java - 线程阻塞/唤醒机制是怎么实现的

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

作者头像
夹胡碰
发布于 2021-01-20 11:57:00
发布于 2021-01-20 11:57:00
9320
举报
文章被收录于专栏:程序猿~程序猿~

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

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

  1. wait/notify机制
  2. LockSupport的park、unpark机制

通过追踪源码可以看到LinkedBlockingQueue和CountDownLatch都是使用 LockSupport的park、unpark机制,传统的wait/notify机制在jdk源码中使用的较少,基本都是基于AQS中的LockSupport实现阻塞/唤醒机制,也有ReentrantLock与Condition结合实现的加锁阻塞/唤醒机制。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档