取消线程
向发送取消请求:
int pthread_cancel (pthread_t thread); 功能:该函数只是向线程发出取消请求,并不等待线程终止。 缺省情况下,线程在收到取消请求以后,并不会立即终止,而是仍继续运行,直到其达到某个取消点。 在取消点处,线程检查其自身是否已被取消了,并做出相应动作。
设置可取消状态:
int pthread_setcancelstate (int state,int* oldstate); 成功返回0,并通过oldstate参数输出原可取消状态(若非NULL),失败返回错误码。 state取值: PTHREAD_CANCEL_ENABLE - 接受取消请求(缺省)。 PTHREAD_CANCEL_DISABLE - 忽略取消请求。
设置可取消类型:
int pthread_setcanceltype (int type, int* oldtype); 成功返回0,并通过oldtype参数输出原可取消类型 (若非NULL),失败返回错误码。 type取值: PTHREAD_CANCEL_DEFERRED - 延迟取消(缺省)。 被取消线程在接收到取消请求之后并不立即响应, 而是一直等到执行了特定的函数(取消点)之后再响应该请求。 PTHREAD_CANCEL_ASYNCHRONOUS - 异步取消。 被取消线程可以在任意时间取消,不是非得遇到取消点才能被取消。 但是操作系统并不能保证这一点。
线程取消机制详解
2087

被折叠的 条评论
为什么被折叠?



