【问题标题】:Benefits of a suspended state in threads?线程中暂停状态的好处?
【发布时间】:2016-06-16 03:31:29
【问题描述】:

我很想回答一个问题,一位教授有意我们。

线程通常具有运行、就绪和阻塞状态。假设我们想添加一个挂起状态,通过允许更多的线程需要比进程地址空间中可用的内存更多的内存来最大化处理器利用率。以上有意义吗?如果是,请解释原因并解释我们获得了什么好处。如果没有,请解释原因。

暂停状态对我来说似乎很愚蠢,因为同步将是一种糟糕的体验。在您可能想要暂停的任何情况下,因此进入阻塞状态可能是一个 10 倍更好的主意。最重要的是,处理器并没有得到尽可能好的利用,因为当一个线程被阻塞时,另一个线程就会被调度。通过进入您明确进入的暂停状态,您几乎可以手动控制调度。我真的很困惑它会提供什么好处。有什么想法吗?

【问题讨论】:

    标签: multithreading operating-system


    【解决方案1】:

    我完全同意你的观点,除非你不限于线程起点同步,否则同步是不可能的。您只需创建一个处于挂起状态的线程,并仅在父进程引发标志时才允许它继续。但除此之外,暂停线程模型无法实现同步。
    我也认为阻塞比挂起队列中的线程更好。处理器已经被充分利用,并且在您将线程用于某些特殊目的之前,将线程置于挂起状态并没有真正的好处。 调试器使用挂起的线程状态,以便他们可以更改/中断/跟踪线程的状态。这准确地显示了我们如何使用挂起状态。
    你是对的,你有点手动控制线程的调度过程,这使得它成为一个糟糕的主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多