仅当取消操作安全时才应取消线程。pthreads 标准指定了几个取消点,其中包括:
通过 pthread_testcancel 调用以编程方式建立线程取消点。
线程等待 pthread_cond_wait 或 pthread_cond_timedwait(3C) 中的特定条件出现。
被 sigwait(2) 阻塞的线程。
一些标准的库调用。通常,这些调用包括线程可基于其阻塞的函数。有关列表,请参见 cancellation(5) 手册页。
缺省情况下将启用取消功能。有时,您可能希望应用程序禁用取消功能。如果禁用取消功能,则会导致延迟所有的取消请求,直到再次启用取消请求。
有关禁用取消功能的信息,请参见pthread_setcancelstate 语法。