java线程几种阻塞方法对比
发布日期:2021-10-09 15:35:02
浏览次数:1
分类:技术文章
本文共 866 字,大约阅读时间需要 2 分钟。
Java线程生命周期
Java中常用的几种阻塞方法
通过上图中的线程生命周期图可知,常用的几种阻塞方法主要有: Thread.sleep(), LockSupport.park(), Object.wait
阻塞方法对比
在这里插入图片描述
Object.wait()相关
方法 | 描述 |
---|---|
Object.wait() | 阻塞当前线程,同时释放锁,并等待另一个线程调用Object.notify()或者Object.notifyAll() |
Object.wait(timeout) | 阻塞当前线程,同时释放锁,并等待时间到或者另一个线程调用Object.notify()或者Object.notifyAll() |
Object.notify() | 从所有等待Object monitor的线程中选取一个线程唤醒并去抢占Object的monitor,如果抢占成功,则会有cpu调度的机会 |
Object.notifyAll() | 唤醒所有等待Object monitor的线程同时所有唤醒线程重新去获取object的monitor,如果抢占成功,则会有cpu调度的机会 |
Thread.sleep()相关
Thread.sleep(timeout): 阻塞当前线程,同时不释放资源锁
LockSupport.park()相关
方法 | 描述 |
---|---|
LockSupport.park() | 阻塞线程,同时消耗1个许可,当另一个线程调用对当前线程的unpark()方法,才会唤醒 |
LockSupport.parkUntil(timeout) | 阻塞线程,当timeout时间到或者另一个线程调用对当前线程的unpark()方法,才会唤醒等待或者cpu并继续执行后续代码 |
LockSupport.parkNanos(timeout) | 阻塞线程,当timeout时间到或另一个线程调用当前线程的unpark()方法,才会唤醒等待或者cpu并继续执行后续代码 |
LockSupport.unpark(Thread) | 调用某个线程的unpark方法,则指定线程会唤醒park()线程 |
转载地址:https://blog.csdn.net/qinwuxian19891211/article/details/105961366 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月27日 00时49分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2014年湖北省TI杯大学生电子设计竞赛论文格式
2019-04-27
Qt网络编程———TCP(1)
2019-04-27
直播架构
2019-04-27
在EXCEL电子表格中怎么把页面调成横向的
2019-04-27
curse下面的键盘模式输入
2019-04-27
研发管理学习与实践
2019-04-27
DirectX 的入门总结
2019-04-27
OBS编译遇到了问题以及解决办法
2019-04-27
windows下面如何将桌面上显示的数据从内存取出来
2019-04-27
OBS代码分析
2019-04-27
DirectX VS2010 编译遇到的问题
2021-06-30
键盘输入curses编程
2021-06-30
Curse的颜色使用
2019-04-27
openGL学习 在windows上显式一个窗口
2019-04-27
功能自动化测试工具列表大全
2019-04-27
Matlab符号方程组化简
2019-04-27
machine learning yearning 第十一章
2019-04-27
machine learning yearning 第十二章
2019-04-27
QT标准对话框
2019-04-27
函数模板参数左值,右值,引用
2019-04-27