在许多不同平台上使用 c/c++ 中的线程
Working with threads in c/c++, across many different platforms
据我了解,如果您使用 C,那么您必然会使用 POSIX 线程。
这些是 OS 依赖的,如果你使用 Linux,你必须使用 <pthread.h>
,而如果你使用 Windows,你必须使用 <windows.h>
.
这些东西也可以转移到 C++。
但是,如果您使用 C++,特别是 C++11 之后的版本,那么您可以跳过 POSIX 线程方法,而使用 #include <thread>
就可以了。
这样理解正确吗?有什么我想念的吗?
从C11开始,标准C语言直接支持线程(使用threads.h
)。请注意,主流编译器(Clang、GCC、ICC、MSVC)支持 OpenMP,可用于使用多线程(通常是数字代码)并行计算代码。 OpenMP 在 C 和 C++(以及 FORTRAN)中可用。另请注意,Windows 支持 PThreads 作为包装库。在 pre-C++11 中,请注意有许多可移植的线程库。一个著名的库是英特尔线程构建模块(又名 TBB)。
相关问题:Multi-Threading support in c11
据我了解,如果您使用 C,那么您必然会使用 POSIX 线程。
这些是 OS 依赖的,如果你使用 Linux,你必须使用 <pthread.h>
,而如果你使用 Windows,你必须使用 <windows.h>
.
这些东西也可以转移到 C++。
但是,如果您使用 C++,特别是 C++11 之后的版本,那么您可以跳过 POSIX 线程方法,而使用 #include <thread>
就可以了。
这样理解正确吗?有什么我想念的吗?
从C11开始,标准C语言直接支持线程(使用threads.h
)。请注意,主流编译器(Clang、GCC、ICC、MSVC)支持 OpenMP,可用于使用多线程(通常是数字代码)并行计算代码。 OpenMP 在 C 和 C++(以及 FORTRAN)中可用。另请注意,Windows 支持 PThreads 作为包装库。在 pre-C++11 中,请注意有许多可移植的线程库。一个著名的库是英特尔线程构建模块(又名 TBB)。
相关问题:Multi-Threading support in c11