如果需要只终止某个线程而不终止整个线程,可以有三种方法:
A:
从主线程函数
return.(从别的函数里return会回到主线程,而不会直接把整个线程结束)
这种方法对主控线程不适合,从
main
函数
return
相当于调用
exit.
B:
一个线程可以调用
pthread_cancel
终止同一进程中的另一个线程。
C:
线程可以调用
pthread_exit
终止自己
同一个进程的线程间,
pthread_cancel
向另一个线程发终止信号。系统不会马上关闭被取消线程,只有在被取消线程下次系统调用时,才会真正结束线程。或调用
pthread_testcancel,
让内核去检测是否需要取消当前线程。