thread默认析构函数是调用了abort()让程序中止
子线程可以自己管理资源也可以在子线程结束时自动将线程杀死,需要程序员显示指定用的是哪种行为,一般都自己来管理资源由j.join()来结束线程,在join前要判断是否joinable()
另一种让子线程代码执行完自动杀死线程,调用detach()即可
生命周期短的用detach,比整个生命周期是短的,不然可能主函数自己的析构函数没调用
有的时候如果在join前要抛出异常时可以自己定义线程保护类
thread默认析构函数是调用了abort()让程序中止
子线程可以自己管理资源也可以在子线程结束时自动将线程杀死,需要程序员显示指定用的是哪种行为,一般都自己来管理资源由j.join()来结束线程,在join前要判断是否joinable()
另一种让子线程代码执行完自动杀死线程,调用detach()即可
生命周期短的用detach,比整个生命周期是短的,不然可能主函数自己的析构函数没调用
有的时候如果在join前要抛出异常时可以自己定义线程保护类