sleep 函数会使线程(进程)交出 CPU 资源吗?

2018-02-24 23:05:13 +08:00
 checgg
4197 次点击
所在节点    问与答
6 条回复
vegito2002
2018-02-24 23:18:26 +08:00
合理设计的 sleep 是会的
wevsty
2018-02-24 23:43:31 +08:00
不确定你具体指的是哪个 sleep 函数,所以只能回答你这取决于函数本身和平台的实现。
以 C 的视角来看。
Windows 下面你调用 Sleep 这个 API,那么是会交出 CPU 资源的。
Linux 下面你调用 unistd.h 中的 sleep 函数也是会的。

但是如果是一门带有协程功能的语言,调用协程库中的 sleep 函数,那么可能线程或者进程并不会交出 CPU 资源,而是转而去处理协程中的其他任务了。
IvanLi127
2018-02-25 03:51:13 +08:00
按你的问法我觉得你说的 sleep 会让出 cpu 时间
iceheart
2018-02-25 05:16:46 +08:00
snnn
2018-02-25 05:24:04 +08:00
必须的
noe132
2018-02-25 09:46:12 +08:00
举个例子,某些单片机的 sleep 就是根据晶振频率来空循环一定次数实现的,这种肯定就不会也没法在 sleep 时干别的事

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

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

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

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

© 2021 V2EX