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

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

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

https://www.v2ex.com/t/622020

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

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

© 2021 V2EX