线程有多贵?

Mic*_*ael 2 multithreading operating-system

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

Mar*_*tos 6

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

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