【发布时间】:2020-07-17 20:11:30
【问题描述】:
我最近开始尝试在std::thread 中使用线程,我想知道使用线程是否有任何缺点(特别是在 c++ 中)。是否存在添加更多线程会降低性能的情况?例如,如果我正在创建多个新线程,每个线程都运行一个服务器对象来侦听传入数据,那么为每个服务器实例创建一个新线程是否很糟糕(性能方面)?为什么/为什么不?
【问题讨论】:
-
"创建线程总是对性能有好处吗?" - 不!
-
绝对不是!从我的错误中学习。 stackoverflow.com/questions/42620323/…
-
我参与的一个项目,我们为每个 IP 连接创建了一个线程。一位开发人员将其转换为使用
select语句,一个线程将处理多个连接。我们发现引爆点是一个线程处理 50 个连接是当创建一个线程变得比让一个线程管理 51 个连接更好时。所以 1:1 的比例是非常低效的。经验教训:简介、简介、简介、衡量、衡量、衡量。 -
@Eljay 羞耻选择不再使用。大幅提升性能。
标签: c++ multithreading performance