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-12-22程序员出海做 AI 工具:如何用 similarweb 找到最佳流量渠道?
- 2024-12-20自建AI入门:生成模型介绍——GAN和VAE浅析
- 2024-12-20游戏引擎的进化史——从手工编码到超真实画面和人工智能
- 2024-12-20利用大型语言模型构建文本中的知识图谱:从文本到结构化数据的转换指南
- 2024-12-20揭秘百年人工智能:从深度学习到可解释AI
- 2024-12-20复杂RAG(检索增强生成)的入门介绍
- 2024-12-20基于大型语言模型的积木堆叠任务研究
- 2024-12-20从原型到生产:提升大型语言模型准确性的实战经验
- 2024-12-20啥是大模型1
- 2024-12-20英特尔的 Lunar Lake 计划:一场未竟的承诺