线程有多贵?

Posted

技术标签:

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

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

【问题讨论】:

没有一个答案——操作系统之间的差异很大。 【参考方案1】:

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

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

【讨论】:

以上是关于线程有多贵?的主要内容,如果未能解决你的问题,请参考以下文章

[]byte(string) 有多贵?

java方法调用有多贵

IOS - reloadData 有多贵?

NULL 指针参数有多贵?

“nodetool repair”操作有多贵?

命名管道(fifo)有多贵?