sem_wating线程会导致更多切换

时间:2009-12-20 10:15:41

标签: c++ c multithreading

我有几个帖子作为主要人员的备份,他们的大部分时间都被sem_wait()阻止了。保留它们是否可以,或者只有在需要进行实际工作时才更好地生成新线程?内核是否会切换到等待sem_wait()并“浪费”CPU周期的线程?

感谢。

2 个答案:

答案 0 :(得分:2)

不,阻塞的线程永远不会为任何常见的线程库和操作系统切换(这将是一个非常糟糕的设计)。但他们当然还会使用记忆。

答案 1 :(得分:0)

选择选项A.

浪费的周期很小。您的线程将始终处于等待状态。

另一方面,启动和停止线程的复杂性,而不是让它们全部启动可能会严重损害您的程序逻辑。