不明白, JDK 源码中大量的死循环为什么没导致 CPU 100%,而我写一个 while(true)一下子就 CPU 跑满了。

2019 年 11 月 22 日
 jeffh
困惑了许久的问题,google 了没找到满意的答案。
10829 次点击
所在节点    程序员
45 条回复
NeroKamin
2019 年 11 月 22 日
那么多 await 看不到吗
jeffh
2019 年 11 月 22 日
@mccreefei 兄弟,说到点上了,理解了。
johnniang
2019 年 11 月 22 日
顺便说一下,时间片是动态的,根据进程运行情况不断调整,而且操作系统会尽可能让 CPU 忙起来(尽管死循环会造成 CPU 空转)。
nicebird
2019 年 11 月 22 日
阻塞了呗。
sleep、锁、wait、poll 等操作,cpu 时间就切出去了。
passerbytiny
2019 年 11 月 22 日
@jeffh 感情你这是只认识 sleep,不认识 await。问问题急躁不是大问题——别人会一边骂一边回答,但问完了还不认错就有问题了——后面别人直接不鸟你。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/622020

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX