栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

System.out.format如何防止死锁?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

System.out.format如何防止死锁?

您并未真正消除 死锁 ,而是(由于某些内部JVM原因)更改了线程的计时,以使其中一个线程

bowBack()
其他调用 之前
进入
bow()
。只需输入
bow
sleep(1000)
,您的僵局就会再次出现。

请注意,只有在线程处于 幸运 时机时,死锁并不 总是 发生。在这种情况下,当两个线程都进入并且它们中的任何一个都调用之前,就会发生死锁
__

bow``bowBack

…并且 “某些内部JVM原因” 可以如下:

在您的情况下,实际上有三个线程:一个执行 maint1t2 。放置 打印
隐藏死锁的原因可能是线程调度程序决定

main
仍有工作要做,即刷新io缓冲区,因此让 main 在开始 t1之后
和开始t2之前继续。如果你是一个双核CPU,只
main
t1
会运行,但
t2
会等待,因为
print
是一个缓慢的操作。上下文切换将花费更多时间,并且
t1 将在 t2 之前完成 __可以开始…所以不会发生死锁。 但这并不意味着如果再次运行该程序,就不会发生死锁。

If you want to play, create a

queue
and push tokens (thread names) in that
queue, then
join
your threads in main. After they finish, print the queue
content and you can observe the timing of the threads.



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号