博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何不使用pthread_cancel而杀死线程
阅读量:4640 次
发布时间:2019-06-09

本文共 1112 字,大约阅读时间需要 3 分钟。

http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html

During the time I use standalone cross compliers to build my system, I find there is NO pthread_cancel in pthread.h (/home/dengwei/standalone-toolchain/sysroot/usr/include/pthread.h).

Shocked by that, but here comes the solution, by using pthread_kill to send a signal , and adding a signal handler :

#include 
#include
#include
#include
#include
#include
#include
pthread_t pid;void handle_quit(int signo){ printf("in qq handle sig %d \n", signo); pthread_exit(NULL); }void* test(void *arg){ signal(SIGQUIT,handle_quit ); for(int i=0;i<100;i++) { printf("in pthread test \n"); sleep(1); }}int main(void){ printf("begin \n"); pthread_create(&pid, NULL , test, NULL); sleep(3); if(pthread_kill(pid, 0)!= ESRCH) { printf("thread %d exists!\n", pid); pthread_kill(pid, SIGQUIT);// pthread_exit(NULL);//this won't work printf("after kill\n"); } sleep(1); printf("exit in main\n");}

 

转载于:https://www.cnblogs.com/jingzhishen/p/3468865.html

你可能感兴趣的文章
软件工程个人作业02
查看>>
pip install 问题
查看>>
vue-router导航守卫,限制页面访问权限
查看>>
2019 Multi-University Training Contest 1 - 1012 - NTT
查看>>
浏览器调试淘宝首页看到有趣的招聘信息
查看>>
ASP.NET Identity “角色-权限”管理 4
查看>>
[转][译]ASP.NET MVC 4 移动特性
查看>>
SOC CPU
查看>>
get_result --perl
查看>>
163镜像地址
查看>>
ehcache memcache redis 三大缓存男高音
查看>>
eclipse 快捷键Open Implementation 直接退出
查看>>
minix中管道文件和设备文件的读写
查看>>
JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
查看>>
context 插图
查看>>
文件管理器中不支持的wma歌曲也显示可以播放的音乐图标
查看>>
Java基础学习-流程控制语句
查看>>
Shell中read的常用方式
查看>>
01javascript数据类型
查看>>
asp.net实现md5加密方法详解
查看>>