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-06-15史上最强 AI 翻译诞生了!拳打谷歌,脚踢 DeepL
- 2024-05-29蓝桥杯大赛单片机比赛经验总结
- 2024-05-29AI 一键生成高清短视频,视频 UP 主们卷起来...
- 2024-05-29打造 AI “看牙”新体验,当 Serverless 遇上口腔医疗
- 2024-05-27取代或转型?人工智能对软件测试的影响(内附工具推荐)
- 2024-05-14让创意在幻觉中肆虐: 认识Illusion Diffusion AI
- 2024-05-08Sora从入门到入门-白话版1
- 2024-05-082024年github开源top100中文
- 2024-05-083、最大池化maxinmum pooling
- 2024-05-08动态规划基础思想