c - 启用可取消性时,pthread_setcancelstate 函数是否为取消点

标签 c multithreading pthreads

pthread_cancel 的手册页说:

The cancellation state can be set to PTHREAD_CANCEL_DISABLE, in which case all cancellation requests are held pending,

这很清楚。 如果有一个挂起的取消请求,并且 pthread_setcancelstate 调用启用了可取消性,线程何时被取消?

  1. pthread_setcancelstate 调用期间
  2. 在下一个取消点

使用默认取消类型 (PTHREAD_CANCEL_DEFERRED)。

最佳答案

pthread_setcancelstate is not permitted to be a cancellation point并且取消被推迟到一个取消点,线程不能被取消直到下一个取消点。

关于c - 启用可取消性时,pthread_setcancelstate 函数是否为取消点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650067/

相关文章:

c - 使用线程传输文件

c - 数据包嗅探器 : IP Header, 服务类型在 C 中输出 0

c - 为什么作为函数参数时 type arrayp[] 与 type* arrayp 相同?

c - 如何在 C 中不使用 __FILE__ 只打印文件名

java - 什么类用于关键字 'synchronized' ?

java - 在调试时如何直观地表示哪些线程锁定了 Java 中的哪些对象?

c - 将输入限制为 4 位数字条目 (0-9)

c# - 遇到意外的联锁行为?

c++ - main 在 pthread 之后不继续

嵌入式系统中的多线程