多语言展示
当前在线:1710今日阅读:91今日分享:37

怎样正确终止线程

C++11提供的线程库中没有提供终止线程的接口,主要考虑如果线程存在锁,或者正在写文件,申请了内存,如果强制中止的话,可能存在意想不到的后果,因此,本文将如何实现代码来正确终止线程。
工具/原料

C++11

方法/步骤
1

定义实现线程函数,函数的参数为std::future, 通过该参数可以控制线程退出

2

主程序函数中创建promise对象,然后从promise对象中提取future对象

3

启动线程,线程函数中的参数传入future对象

4

调用promise对象的函数set_value来发送信号

5

调用线程库中的join函数等待线程退出

6

整个处理流程如下所示,先创建promise对象,从promise对象中提取future对象,将future对象传入线程函数,然后启动线程,当需要退出线程的时候,调用set_value发送信息,让线程退出

7

调试运行的结果如下所示,发送信号让线程退出后,主测试函数也就退出了

注意事项
1

喜欢经验欢迎点赞投票!

推荐信息