interrupt,park/unpark,wait/notify
2021/9/21 23:15:05
本文主要是介绍interrupt,park/unpark,wait/notify,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原创,请勿转载~
涉及到2个概念,许可证(permit)和中断状态(interrupt status)
中断状态比较容易理解,每个线程都有一个中断状态的标识,调用interrupt方法,即可设置此标识。
许可证是park和unpark才牵扯到的概念。
如果有许可证,park立即返回,如果中断状态已设置,park也立即返回。
park会消耗许可证,不会清除中断状态
unpark会生成一个许可证
unpak可以在park之前先调用,生成一个许可证,之后调用park的时候回消耗掉这个许可证,并立即返回
每个线程,最多只有一个许可证,多次调用unpark,也只是生成一个许可证
wait和notify之间没有“许可证”这种概念
在wait之前的notify都是无效的。
如果中断状态已设置,则wait清除中断状态,并立即返回。
interrupt方法,不只设置中断状态这个标识,也会调用unpark方法。
因此,调用interrupt之后,此线程的中断状态被设置,且会生成许可证。
wait,join,sleep都会清除中断状态,其余情况(park等),都不会清除中断状态。
这篇关于interrupt,park/unpark,wait/notify的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15Tailwind开发入门教程:从零开始搭建第一个项目
- 2024-11-14Emotion教程:新手入门必备指南
- 2024-11-14音频生成的秘密武器:扩散模型在音乐创作中的应用
- 2024-11-14从数据科学家到AI开发者:2023年构建生成式AI网站应用的经验谈
- 2024-11-14基于AI的智能调试助手创业点子:用代码样例打造你的调试神器!
- 2024-11-14受控组件学习:从入门到初步掌握
- 2024-11-14Emotion学习入门指南
- 2024-11-14Emotion学习入门指南
- 2024-11-14获取参数学习:初学者指南
- 2024-11-14受控组件学习:从入门到实践