C语言如何终止线程?

Python012

C语言如何终止线程?,第1张

调用ExitThread函数。该函数将终止线程的运行,并导致操作系统清除该线程使用的所有操作系统资源。但是,C++资源(如C++类对象)将不被撤消。(3)调用TerminateThread函数。TerminateThread 能撤消任何线程。线程的内核对象的使用计数也被递减。TerminateThread函数是异步运行的函数。如果要确切地知道该线程已经终止运行,必须调用WaitForSingleObject或者类似的函数。当使用返回或调用ExitThread的方法撤消线程时,该线程的内存堆栈也被撤消。但是,如果使用TerminateThread,那么在拥有线程的进程终止运行之前,系统不撤消该线程的堆栈。

有三种方式可以终止线程,具体调用函数依赖于使用的线程系统。

1 在线程入口函数中,调用return。 即退出线程入口函数,可以实现终止当前线程效果;

2 在线程执行的任意函数,调用当前线程退出函数,可以退出当前线程;

3 在任意位置,调用线程终止函数,并传入要终止线程的标识符,即pid,可以实现终止对应线程效果。