language-agnostic - Sleep() 是邪恶的吗?

标签 language-agnostic

首先,在很多情况下,Sleep()误用,例如“同步”线程或定期轮询通知函数会调用的值。 (例如,在 Win32 WaitForSingleObject 中)

但是其他用例呢? Sleep 总是邪恶的吗?如果不是,Sleep 的良好用例有哪些?如果是,为什么几乎所有语言都有某种 Sleep 语句?

PS:我问这个问题是因为 another 的评论之一问题。 OP 指出,在他看来,应该避免 Sleep,就像 goto 一样。

最佳答案

我实际上相信您链接的断言是正确的。问题是 sleep (正如您所指出的)被用作通知机制的低效替代品。 如果您正在等待事件, sleep 总是不如正确实现的通知机制。如果您确实需要等待某件事特定时间,那么 sleep 是合适的。

例如,在某些网络协议(protocol)中,您使用一种称为指数退避的技术,如果您检测到网络上发生冲突,则需要在重试之前等待随机(且呈指数增长)的时间。在这种情况下, sleep 是合适的,因为您不是在尝试等待事件发生,而是在尝试等待特定的时间过去。

关于language-agnostic - Sleep() 是邪恶的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1096794/

相关文章:

language-agnostic - "getting"项目和 "fetching"项目之间有区别吗?

algorithm - 确定线段是否在多边形内

algorithm - 如何测试哈希函数?

oop - 什么时候使用私有(private)方法?

algorithm - 在无限平面上没有图形的运动规划

language-agnostic - 我应该写什么才能成为更好的开发人员?

algorithm - 分层数据的最佳图形绘制算法?

language-agnostic - 有哪些游戏具有相当简单的启发式来评估位置?

java - Java 虚拟机语言不可知吗?

math - float 学有问题吗?