线程有多贵?

时间:2010-12-13 13:24:17

标签: multithreading operating-system

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

1 个答案:

答案 0 :(得分:4)

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

许多情况下的主要成本是缓存污染。有太多的活动并发任务会导致性能下降,因为太多的线程共享太少的缓存,并且它们只是继续推回主内存,这对于一个线程来说是一个更糟糕的侮辱,而不仅仅是因为睡觉导致单个惩罚数百个周期,而检索主存储器在单个时间片期间会多次产生类似的开销,并且还意味着按比例增加上下文切换,因为在该时间片期间完成的工作要少得多。