Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么';在Windows的gcc端口中,thread_posixs和thread_win32之间的区别是什么?_C++_Windows_Multithreading_Gcc4.7 - Fatal编程技术网

C++ 什么';在Windows的gcc端口中,thread_posixs和thread_win32之间的区别是什么?

C++ 什么';在Windows的gcc端口中,thread_posixs和thread_win32之间的区别是什么?,c++,windows,multithreading,gcc4.7,C++,Windows,Multithreading,Gcc4.7,我想下载最新版本的gcc4.7.2compilerforwindows。当我到达这里,我应该看到一个下载链接时,我遇到了两个类别: 线程posix 线程-win32 这两者有什么区别?它们只是线程实现吗?我的意思是,它们只是在实现方式上有所不同,因此最终结果(类、如何使用它们等)保持不变吗?或者他们强加了特定的编码风格?因此,您提供的链接导致了独立的gcc 4.7.2 windows版的构建,也称为mingw64。为了构建此编译器,使用了一组脚本,这些脚本有助于定义编译选项。这些脚本称为MinG

我想下载最新版本的
gcc4.7.2
compilerforwindows。当我到达这里,我应该看到一个下载链接时,我遇到了两个类别:

  • 线程posix
  • 线程-win32

  • 这两者有什么区别?它们只是线程实现吗?我的意思是,它们只是在实现方式上有所不同,因此最终结果(类、如何使用它们等)保持不变吗?或者他们强加了特定的编码风格?

    因此,您提供的链接导致了独立的gcc 4.7.2 windows版的构建,也称为mingw64。为了构建此编译器,使用了一组脚本,这些脚本有助于定义编译选项。这些脚本称为MinGW builds,可以在不同的地方找到:

    这些脚本有一个选项,用于指定C++11标准的std::threads部分将使用哪个线程模型(由于在该版本的GCC上应用了一个线程模型,所以MinGW允许使用该模型)。 在一种情况下,使用win32线程API,而在另一种情况下,使用的是posix API

    请注意,Windows不支持所有现成的POSIXAPI,因此需要使用一些外部仿真库(winpthreads)

    GCC源配置脚本有一个选项来指定API(-enable threads=),这就是构建脚本中使用的

    简而言之,对于这个版本的mingw,threads posix发行版将使用posix API并允许使用std::thread,threads-win32将使用win32 API,并禁用标准的std::thread部分以确保完整性(因为它只适用于5.3.0及以上版本),可以将std::thread与win32线程模型一起使用。