【问题标题】:How expensive are threads?线程有多贵?
【发布时间】:2010-12-13 13:24:16
【问题描述】:

操作系统本机线程有多贵?主机操作系统为线程堆栈分配一些虚拟内存,为线程控制结构分配一点内核内存。我错过了什么吗?

【问题讨论】:

  • 没有一个答案——操作系统之间的差异很大。

标签: multithreading operating-system


【解决方案1】:

它可以增加调度程序的工作量,具体取决于线程的繁忙程度以及调度程序的类型。它还将为堆栈的第一页分配物理内存。

在许多情况下,主要成本是缓存污染。有太多的活动并发任务会降低性能,因为太多的线程共享的缓存太少,而且它们只是不断地互相推回主内存,这对线程来说比简单地进入睡眠状态更糟糕,因为睡眠会导致数百个周期的单次惩罚,而在单个时间片内多次检索主内存会导致类似的开销,并且还意味着相应地更多的上下文切换,因为在该时间片内完成的工作要少得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2012-12-31
    • 1970-01-01
    • 2021-08-17
    • 2011-06-08
    相关资源
    最近更新 更多