detach了就是无法join子线程了,一般只在不需要wait那个子线程退出时才这么干。
被detach的子线程自己退出时还是会释放对应的资源的。
可以单步执行进detach()看看它到底干了些什么。
很多时候是需要join子线程的(也就是当你有和子线程同步的需求时),不能detach子线程。
有个坑:
在DLL中创建的子线程,一定要保证dll被unload/unmap之前先退出子线程,否则线程的函数体代码都不在内存了,直接崩。
Windows上干这件事情"唯一"正确的方式是FreeLibraryAndExitThread()
https://devblogs.microsoft.com/oldnewthing/20131105-00/?p=2733
--
FROM 221.222.172.*