C语言pthread_cancel()的用法是甚么
pthread_cancel函数用于向指定的线程发送取消要求,以要求线程终止履行。被要求终止的线程可以选择立即终止或在适合的时机终止。
pthread_cancel函数的原型以下:
#include
int pthread_cancel(pthread_t thread);
调用pthread_cancel函数后,如果成功发送了取消要求,目标线程会收到一个取消要求通知,被要求终止的线程可以选择如何应对这个要求。可以通过设置线程的取消状态(取消状态默许为启用)和取消类型(取消类型默许为推延取消)来决定怎样处理取消要求。
取消状态可以设置为以下两种状态之一:
取消类型可以设置为以下两种类型之一:
通常,当线程收到取消要求时,会履行已注册的取消清算处理函数(通过pthread_cleanup_push和pthread_cleanup_pop函数注册)。
需要注意的是,pthread_cancel函数只是向目标线程发送要求,目标线程是否是终止取决于目标线程本身的处理方式。如果目标线程没有响应取消要求,还是取消要求被禁用,那末pthread_cancel函数的返回值将为非零值,表示发送取消要求失败。
总结起来,pthread_cancel函数用于向目标线程发送取消要求,以要求线程终止履行。被要求终止的线程可以选择立即终止或在适合的时机终止,具体取决于线程的取消状态和取消类型的设置。
TOP