Linux 中的 C++ 线程

Nat*_*han 3 c++ linux multithreading

我正在尝试在 Linux 中创建一个多线程 C++ 程序。我以前在 Windows 上使用过 pthreads 库,但我听说它不是 Linux 的标准。对于 Linux 上的 C++,您建议使用什么线程库?有哪些选项,什么是最常见的,什么通常是最快的?谢谢!

编辑:我错误地认为 pthreads 不是 Linux 原生的,正如我所说,这是我不久前听到的。我主要是在寻找各种线程选项的效率之间的比较,并且特别好奇有关 c-11 线程库与我之前使用过的 pthread 的执行情况的信息。我被误导了,我发布这个问题是为了获得更多信息。没必要太恶心。

小智 5

如果您使用的是 C++11,只需使用std::thread. 这样做相当简单。例如:

\n\n
#include <thread>\n\nvoid thread_entry(int foo, int bar)\n{\n    int result = foo + bar;\n    // Do something with that, I guess\n}\n\n\n// Elsewhere in some part of the galaxy\nstd::thread thread(thread_entry, 5, 10);\n// And probably\nthread.detach();\n\n// Or\nstd::thread(thread_entry).detach();\n
Run Code Online (Sandbox Code Playgroud)\n\n

它很简单,并且应该足以满足大多数目的(尽管根据实现,它可能取决于 pthreads)。

\n\n

如果没有,只需使用 pthreads,因为您熟悉它。它是 POSIX 标准的一部分,大多数 Linux 发行版至少都兼容 \xe2\x80\x94,它们足够兼容,任何差异对你来说都不重要。

\n