自C++11开始后C++有了标准的线程库:std::thread,各种支持C++11及更改版本的IDE都可以使用,便于是使用C++开发多线程库供多平台使用。
话不多说,直接上代码简单明了:
例程1:
运行后发现线程函数正常运行,但是程序会报错,如下所示:
这是因为创建了线程后线程开始执行,但是主线程main()并没有停止脚步,仍然继续执行然后退出,此时创建的子线程还在运行,线程仍然存在但指向它的线程对象已经销毁,所以会抛出异常。那么怎样才能保证主线程在子线程退出后再退出呢?
自C++11开始后C++有了标准的线程库:std::thread,各种支持C++11及更改版本的IDE都可以使用,便于是使用C++开发多线程库供多平台使用。
话不多说,直接上代码简单明了:
例程1:
运行后发现线程函数正常运行,但是程序会报错,如下所示:
这是因为创建了线程后线程开始执行,但是主线程main()并没有停止脚步,仍然继续执行然后退出,此时创建的子线程还在运行,线程仍然存在但指向它的线程对象已经销毁,所以会抛出异常。那么怎样才能保证主线程在子线程退出后再退出呢?