诚心冬天

文章
5
资源
0
加入时间
2年10月24天

C/C++:std::thread构造函数死锁问题:WIN32下不可以在DllMain中创建线程

最近在设计一个动态库时,在全局变量中创建了线程,在Windows下动态库加载时导致死锁。根本的原因是Windows要求不可以在动态库的DllMain函数中创建线程,而我的代码结构恰好满足这个条件。以下是简化后的示例代码:class_a.hpp#include <thread> // c++11 support#include <iostream>class A { A(){ // 启动线程 std::thread t([]{ std::