pthread_cancel(thread_t thread)
函数可以取消一个线程的执行。有两种取消方式:立即取消和延迟取消。通过
pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
和pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
设置。延迟取消不会使得线程立即取消,只是给线程发送一个信号。线程会在取消点检查是否有信号,有信号才取消。也就是延迟到取消点取消。取消点有 IO(printf也是IO),pthread_mutex_lock(),phtread_join(),phtread_testcancel()函数等。目前,我没有 找到线程取消的回调函数写法。也就是线程被取消后,可能来不及释放它的资源。
pthread_cancel
最新推荐文章于 2024-07-10 22:49:54 发布
本文介绍了pthread_cancel函数在C语言多线程中的应用,区分了立即和延迟取消,强调了取消点如IO操作和同步锁的影响,并指出当前缺乏线程取消时的回调机制,可能导致资源释放问题。
摘要由CSDN通过智能技术生成