【问题标题】:do sem_wating threads cause more switchingsem_wating 线程是否会导致更多切换
【发布时间】:2009-12-20 10:15:40
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: c++ c multithreading


    【解决方案1】:

    不,任何常见的线程库和操作系统都不会切换阻塞线程(如果它们是设计的话,那将是一个非常糟糕的设计)。但当然,它们仍然会使用内存。

    【讨论】:

      【解决方案2】:

      选择选项 A。

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

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

      【讨论】:

        猜你喜欢
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        • 2016-12-26
        相关资源
        最近更新 更多