【发布时间】:2019-11-09 06:28:33
【问题描述】:
所以我的目标是执行由线程处理的一段代码(假设线程 1 使用 POSIX 线程),同时取消执行它各自任务的不同线程(线程 2)。线程 1 在发生特定事件时启动(基于时间的事件 - 在我的情况下为 60 秒)。
为此,我使用了sleep() 函数。但是我的导师告诉我,在多线程程序中使用 sleep 是一种不好的做法。我无法理解他的推理。所以我决定逃到这里。
如果我的问题看起来太模糊,提及sleep() 的任何缺点将不胜感激。
【问题讨论】:
-
好的设计是使用定时器并等待它们的结果。Sleep 基本上会做同样的事情,但看起来不太好。 ;-) 好的,真正的原因是当您等待计时器时,您也可以在 sleep 仅休眠时等待其他事情。
-
我喜欢这个问题,但如果它是在softwareengineering.stackexchange.com 而不是 SO,我会更喜欢它。我不知道如何要求版主将它移到那里。我可以投票将其移至其他五个 stackexchange 站点中的任何一个,但软件工程不是选择之一。 :-(
-
对不起,我是这个平台的新用户,下次会更周到。 :-)
标签: c thread-safety pthreads sleep