Mar*_*377 24 c++ multithreading gcc mingw-w64 c++11
我在安装MinGW-w64工具链时选择了Win32线程模型,在阅读它之后提供了比POSIX更好的性能.我自己没有资格对此声明进行基准测试,但这里有一个来源.
起初我认为这个选项只会影响GCC运行时的内部工作,同时不会阻止我在我的代码中使用C++ 11线程,基于这个答案和其他用户rubenvb的评论.
但是,情况似乎并非如此.在MinGW-w64安装中似乎不存在支持.std::thread
我从命令行调用g ++而没有其他选项-std=c++11
.
此时我不确定是否:
thread
库的代码,或者;std::thread
在我的场景中实际上是支持的,它只是不直观.我强化了标题中的"开箱即用"部分.存在一个名为mingw-std-threads的库,如本答案中所示.但是,作为第三方选项,它与此问题无关.
那么,截至今天(2016年5月)std::thread
,当与Win32内部线程模型一起安装时,MinGW-w64是否支持依赖代码?
M.M*_*M.M 20
要将MinGW-w64与Win32本机线程一起使用,您可以安装mingw-std-threads标头.
如该页面所述,这是因为MinGW-w64是GCC的端口,但GCC不包含任何本机线程支持.相反,GCC安装通常通过gthreads或pthreads实现线程作为glibc的一部分.MinGW-w64不包含glibc端口.(相反,它使用MSVC运行时的组合,加上自己的代码来填充漏洞).
同样如该页面所述,最新版本的MinGW-w64确实包含一个pthreads的Win32端口("winpthreads"),这解释了为什么你可以通过从MinGW中选择"pthread"模型让线程"开箱即用". -w64安装程序.
归档时间: |
|
查看次数: |
12572 次 |
最近记录: |