MinGW-W64中的std :: thread,posix线程和win32线程

时间:2014-08-13 02:08:31

标签: c++ multithreading winapi c++11 mingw-w64

我正在使用MinGW_W64,而我无法决定如何使用“线程”选项继续前进。我可以使用posix线程或win32线程。到目前为止,我一直在使用C ++ 11的“std :: thread”进行线程化(需要posix线程选项),我真的很喜欢这种界面做事情。但是,我从多个来源读到posix线程明显慢于win32线程,性能是我的一个大问题。

我的项目最终将是多平台的,但是现在我的主要开发机器正在运行Windows 7。

我的问题是:MinGW_W64的posix线程是否比win32线程慢?如果是这样,我将如何编写一个包装器,让我使用std :: thread-like接口,但在引擎盖下使用win32线程(或者如果有人已经写过一个包装器就找到这样的包装器)?

1 个答案:

答案 0 :(得分:3)

已经有一个用于MinGW的std :: thread和sync基元的轻量级本机实现,在纯WINAPI中实现: https://github.com/meganz/mingw-std-threads

它是一个仅限标头的lib,应该适用于任何具有正确C ++ 11支持的MinGW版本。