C/C++四种退出线程的方法
退出线程可以有四种方法: 1.线程函数的return返回(最好这样): 其中用线程函数的return返回, 而终止线程是最安全的, 在线程函数return返回后, 会清理函数内申请的类对象, 即调用这些对象的析构函数. 然后会自动调用 _endthreadex()函数来清理 _beginthreadex(...)函数申请的资源(主要是创建的tiddata对象). 2.调用 _endthreadex()函数 或 ExitThread()函数(最好不要): 如果使用这两种方法退出线程, 则不会执行线程函数的return语句, 所以就不会调用线程函数作用域内申请的类对象的析构函数, 会造成内存泄露. 剩下两种是在程序设计中一定要避免的. 3.用同一个进程中的另一个线程调用 TerminateThread()函数(必须避免); 4.终止该线程所在的进程(绝对避免); 但是要说_endthreadex完全没有用肯定是不对的,_endthreadex并不是一个过时的函数,正确的使用并不会带来问题。
欢迎各位大牛 补充 + 讨论 ~~~~~!!!! From zhuocheng (cnblogs.com/zhuocheng) |
|