首页 > 代码库 > .取消线程
.取消线程
/*0.取消线程 int pthread_cancel(pthread_t thread);设置取消点 void pthread_testcancel(void);测试是否接收到取消请求,如果有,结束线程。例子:*/#include <stdlib.h>#include <pthread.h>#include <stdio.h>#include <sched.h>int a = 0;void *thread1(void *arg){ pthread_testcancel(); 这个函数非常重要要和 pthread_cancel(t1),结合起来使用; a = 10; } /*如果改为: int a = 0;void *thread1(void *arg){ a = 10; pthread_testcancel(); }运行结果:a值被修改了main startmain end, a=10*/int main(int argc, char *argv[]){ pthread_t t1, t2, t3; int ret, i; printf("main start\n"); ret = pthread_create(&t1, NULL, thread1, NULL); pthread_cancel(t1); pthread_join(t1, NULL); sleep(3); printf("main end, a=%d\n", a); return 0;}/*运行结果:在取消点处程序结束,a值未该。main startmain end, a=0*/
.取消线程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。