1

手册页pthread_cancel说:

取消状态可以设置为 PTHREAD_CANCEL_DISABLE,在这种情况下,所有取消请求都处于挂起状态,

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

  1. pthread_setcancelstate通话期间
  2. 在下一个取消点

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

4

1 回答 1

2

由于pthread_setcancelstate 不允许作为取消点并且取消被推迟到取消点,因此直到下一个取消点才能取消线程。

于 2012-07-25T13:00:19.983 回答