linux线程切换回调函数,linux C线程退出回调函数
待补充....................
函数原型
void pthread_cleanup_push(void (*routine)(void*), void *arg);
void pthread_cleanup_pop(int execute);//这里的int参数,0是不执行push的内容,非0是执行。
三种情况触发回调函数:
1、调用pthread_cancel()删除线程。
2、调用ptread_exit()推出线程。
3、调用pthread_cleanup_pop(1)时参数不为0。
#include
#include
#include
#include
pthread_t thread1, thread2;
void cleanUp(void * arg)//线程清理回调函数
{
printf("%s\n", "cleanUp");
}
void * thread1Func(void *arg)线程一
{
pthread_cleanup_push(cleanUp, "this is cleanUp")
printf("%s\n","sadf");
sleep(4);
pthread_cleanup_pop(0); //一定要在调用pthread_exit()函数 之前调用pthread_cleanup_pop()函数,cleanup函数才能被调用,因为pop弹出之前才能被调用嘛
pthread_exit((void *)1);//无法触发回调cleanup
}
void * thread2Func(void *arg)
{
pthread_cleanup_push(cleanUp, "this is cleanUp")
printf("%s\n","sadf");
sleep(4);
pthread_exit(0);//触发回调cleanup
pthread_cleanup_pop(0);
}
int main()
{
pthread_create(&thread1, NULL, (void *)thread1Func, NULL);
pthread_create(&thread2, NULL, (void *)thread2Func, NULL);
sleep(1);
pthread_cancel(thread1);//触发回调
pthread_cancel(thread2);//触发回调
sleep(4);
// pthread_join(thread1,NULL);
// pthread_join(thread2,NULL);
return 0;
}
linux线程切换回调函数,linux C线程退出回调函数相关推荐
- java线程切换速度_为什么说线程太多,cpu切换线程会浪费很多时间?
cpu在执行代码的时候[以下说明只在linux平台上,win我不会] 该程序已经是ELF executable file 且该文件内部按ELF格式存储了机器指令+数据 同时该文件必须引用linux 的 ...
- java线程切换 notify_浅谈 Java线程状态转换及控制
作者:城北有个混子 出自:博客园 1.线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞( ...
- linux禁止切换到root,linux禁止普通用户切换至root用户的实例讲解
在上正文之前,我想先将一些基础的linux用户以及用户组的相关命令: 1.添加用户 useradd [-g group] [-d user_home_directory] [-p "your ...
- 如何在linux下切换用户,linux如何切换用户?linux切换用户的方法
linux如何切换用户?linux是一款适用于开发者开发软件的操作系统,不少刚接触linux系统的用户在使用过中会遇到一些问题,最近就有用户反应该如何切换linux用户的问题,关于linux切换用户的 ...
- linux 中切换用户指令,linux系统怎么用命令切换用户?
linux如何切换用户?linux是一款适用于开发者开发软件的操作系统,不少刚接触linux系统的用户在使用过中会遇到一些问题,最近就有用户反应该如何切换linux用户的问题,关于linux切换用户的 ...
- linux 中切换用户指令,Linux中的Su命令(切换用户)
su(替代或切换用户的缩写)实用程序允许您使用其他用户(默认情况下为root用户)的特权运行命令. 使用su是在当前登录会话中切换到管理帐户的最简单方法.当不允许root用户通过ssh或使用GUI显示 ...
- Android线程创建aop,【android安卓】一个注解搞定线程切换,基于AOP的线程转换框架...
最简单的使用方法: 模拟进度展示: @RunOnIOThread public void progress() { for (int i = 0; i <= 100; i++) { showPr ...
- linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客
今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...
- linux怎么切换当前用户名,Linux的用户切换、修改用户的用户名和密码
一.用户切换 "$":普通用户提示符 "#":root用户提示符 1.普通用户到root: 方式一:命令:su然后输入root密码 此种方式只是切换了root身 ...
- 将linux界面切换一屏幕,Linux如何从图形界面切换到命令界面
1.手工切换:在图形界面中找一个可以输入命令的地方(RedHat9中默认是按alt+F2,或者从菜单:系统工具→终端打开) 输入init 3 回车(注意init后面有一个空格),等一会就进入了命令界面 ...
最新文章
- IOS使用个推遇到的坑
- 内核管理实战之虚地址转换为物理地址
- mimind(思维导图软件)中文版
- capcreatecapturewindowa 说明_家长不批改作业,还需要写情况说明?
- 2019第十届蓝桥杯C/C++ B组省赛 —— 第三题:数列求值
- SAP Spartacus如何判断用户是否已经成功登录
- 【ASP.NET Core 沉思录】CreateWebHostBuilder 是一个 Convension
- 动易sitefactory 数据库 mysql msssql_动易SiteFactory配置文件(web.config)常用配置节解读...
- 大数据发展的问题与机遇
- zlib的安装与使用
- Java 获取汉字拼音的方法
- 类与对象(面向对象的编程语言java)
- Smart View 11.1.2.5配置共享连接
- 诺基亚Nokia的PC套件导出短信乱码问题解决(转)
- 已知三角形顶点坐标,求其外接圆的公式
- sd卡驱动分析之core
- 20金融学431考研应该注意些什么
- 【线性代数笔记】矩阵的合同关系
- 日志追踪-类加载器-自定义类加载器
- 安卓手机云控系统框架源码,PHP+Autojs, ,这套是空框架源码
热门文章
- c++函数可变参数列表foo(int a, ...){}中的省略号“...”
- 轻松解决远程链接的“Gtk-WARNING **: cannot open display;”或“Cannot connect to display;”问题
- Linux查看显示编辑文本文件
- mysql查询语句有点难_Mysql惯用函数,难点,注意_mysql
- 免费制作微信小程序开发关于旅游_教大家怎么一步步免费自己做微信小程序
- 请画出使用mapreduce对英文句子_「Postgresql架构」用MapReduce的方式思考,但使用SQL...
- Vue3计算属性computed
- openCV之图像基础(笔记02)
- web前端基础(01html基本标签)
- elasticsearch设置为windows系统服务