【发布时间】:2014-03-21 01:54:31
【问题描述】:
我是 C++ 程序员(中级),现在正在学习多线程。我发现什么时候在 C++ 中使用多线程很令人困惑?我怎么知道我需要在哪个部分使用多线程?
When to use multithreading in C++?
【问题讨论】:
-
只有当你绝对必须这样做时:) 虽然常见的情况是如果你正在构建一个接受套接字请求的服务器。每个套接字通常都需要自己的线程(有替代方案,但它们可能很复杂)。在其他情况下,您有很多繁重的工作要做。像编码视频。您可以将工作拆分到多个 CPU 内核上。基于计时器触发发生的事情。也是线程的良好候选者。但除非有明显的优势,否则不要使用它们。线程间通信可能很复杂并会产生细微的错误。
-
这是重复的,因为使用 C++ 与问题无关。
-
@Martin - 好吧,部分。不同的语言使线程或多或少变得困难。对于 C++,我会说 AVOID,Java 你可能会说,而对于 Go,答案可能是“你不需要”:)
-
@SlipperySeal:使它“你不必”的语言实际上在后台处理它(至少我有经验的那些不包括 Go,例如 javascript )。 C++ 只是让所有底层的东西变得明确,而且这不是微不足道的。
标签: c++ multithreading