Windows的gcc端口thread_posixs和thread_win32之间的区别是什么?

我想下载适用于windows的最新版本的gcc 4.7.2编译器。
当我到了这个页面 ,我应该看到一个下载链接,我面对两个类别:

  1. 线程,POSIX
  2. 线程-win32的

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

所以,你提供的链接导致构建独立的gcc 4.7.2 for windows,又名mingw64。 为了构建这个编译器,我们使用了一组脚本来帮助定义编译选项。 这些脚本简单地称为MinGW-builds,可以在不同的地方找到:

  • 谷歌代码
  • github叉子

脚本有一个选项,指定哪个线程模型用于C ++ 11标准的std :: threads部分(MinGW允许在该版本的GCC上应用实验性补丁 )。 在一种情况下,使用win32线程API,在另一种情况下,它是使用的posix API。

请注意,Windows不支持所有开箱即用的POSIX API,因此需要使用一些外部仿真库(winpthreads)。

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

总之,对于这个版本的mingw,threads-posix版本将使用posix API并允许使用std :: thread ,而threads-win32将使用win32 API,并禁用std :: thread的部分标准