控制台多线程程序的结束方法
比较不错的方法是:
1、在主线程(运行main函数的线程)中利用SetConsoleCtrlHandler注册的控制事件处理函数(注意:这个函数将运行在另外的线程, 这点可用GetCurrentThreadId验证之)7 ^& t" R+ _, D3 [. o
2、控制事件产生后, 在控制线程(运行控制事件处理函数的线程)中设置标志量表明程序开始退出( 主线程检测到标志量变化后将开始等待其余线程退出).控制线程开始等待工作者线程退出完成.
3、各工作者线程检测到标志量的变化, 退出. V& E; R' u) M% J s
4、控制线程退出
主线程等待其余线程退出完成,退出3 f; C!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步