【问题标题】:What's the definition of 'heavy threading environment'?“重线程环境”的定义是什么?
【发布时间】:2011-06-01 08:57:33
【问题描述】:

我在一段代码上使用了lock。尽管临界区很小,但许多线程会到达那里(大约每秒 100 个线程)。在一些文章中我看到this method is not suitable for heavy threading environments

我的问题是我们称之为环境heavy threaded 的速率是多少?

【问题讨论】:

  • 这个锁对你的表现有显着影响吗?如果不是你很好;-)

标签: multithreading environment


【解决方案1】:

很遗憾,我认为重线程没有任何具体的数字定义。一些快速的谷歌搜索向我展示了最近的上下文切换基准数字,引用上下文切换成本介于1us30us 之间。悲观地假设30us,这意味着:

(30 us/switch * 100 switch/sec) == 3ms/sec == 0.3% context-switch overhead

您提到的每秒执行 100 次上下文切换。不用担心,但上下文切换并不是全部:您还必须考虑互斥争用的成本,我建议您在自己的应用程序中以及您正在使用的特定互斥实现中进行衡量。

底线是,如果您的应用获得可接受的吞吐量,那么以这些速率使用此模式就可以了。我的猜测是,互斥争用可能占主导地位,因此关键部分的运行时间(以及运行时间的可变性)可能会影响这对你是否有效。

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多