线程pthread_cleanup_push的简单例程.
http://www.cnblogs.com/hnrainll/archive/2011/04/20/2022149.html
#include<stdlib.h>
#include<stdio.h>#include<unistd.h>#include<pthread.h>void clean_fun1(void * arg){    printf("this is clean fun1\n");}void clean_fun2(void * arg){    printf("this is clean fun2\n");}void * thread_fun(void * arg){    pthread_cleanup_push(clean_fun1,NULL);    pthread_cleanup_push(clean_fun2,NULL);    sleep(100);    //这里要注意,如果将sleep(100);换成while(1);的话,程序会一直暂停.push和pop要成对出现.    //因为while(1);运行的太快,线程不接受cancel信号    //while(1);    pthread_cleanup_pop(0);    pthread_cleanup_pop(0);    return NULL;}int main(){    pthread_t tid1;    int err;    err=pthread_create(&tid1,NULL,thread_fun,NULL);    if(err!=0)    {        perror("pthread_create");        exit(0);    }    sleep(3);    //printf("test\n");    err=pthread_cancel(tid1);    if(err!=0)    {        perror("cancel error:");        exit(0);    }    err=pthread_join(tid1,NULL);    if(err!=0)    {        perror("pthread_join  error:");        exit(0);    }         return 0;}线程pthread_cleanup_push的简单例程.的更多相关文章
- [stm32][ucos][ucgui] 2、LED闪烁、串口、滑块、文本编辑框简单例程
		上一篇:[stm32][ucos] 1.基于ucos操作系统的LED闪烁.串口通信简单例程 * 内容简述: 本例程操作系统采用ucos2.86a版本, 建立了7个任务 任务名 ... 
- Socket编程实践(2)  Socket API 与 简单例程
		在本篇文章中,先介绍一下Socket编程的一些API,然后利用这些API实现一个客户端-服务器模型的一个简单通信例程.该例子中,服务器接收到客户端的信息后,将信息重新发送给客户端. socket()函 ... 
- 【转】用Pthread创建线程的一个简单Demo
		一.我们直接在COCOS2D-X自带的HelloWorld工程中添加代码.首先将Pthread的文件包含进来包括lib文件.在HelloWorld.cpp中引入头文件和库. #include &quo ... 
- java 使用线程做一个简单的ATM存取款实例.(转)
		线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域. 可以,直接继承线程Thread类.该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类 实现Runn ... 
- 关于flask线程安全的简单研究
		flask是python web开发比较主流的框架之一,也是我在工作中使用的主要开发框架.一直对其是如何保证线程安全的问题比较好奇,所以简单的探究了一番,由于只是简单查看了源码,并未深入细致研究,因此 ... 
- UnityShader 表面着色器简单例程集合
		0.前言 这些简单的shader程序都是写于2015年的暑假.当时实验室空调坏了,30多个人在实验室中挥汗如雨,闷热中学习shader的日子还历历在目.这些文章闲置在我个人博客中,一年将过,师弟也到了 ... 
- struts1.x mvc简单例程
		因为项目需要,需要使用struts1.x .因此学习下struts框架. 例程从struts 实现MVC框架入手,完成一次request请求. 一.前台 两个jsp文件 index.jsp: 只有一个 ... 
- Executor线程池的简单使用
		我们都知道创建一个线程可以继承Thread类或者实现Runnable接口,实际Thread类就是实现了Runnable接口. 到今天才明白后端线程的作用:我们可以开启线程去执行一些比较耗时的操作,类似 ... 
- JAVA中线程池的简单使用
		比如现在有10个线程,但每次只想运行3个线程,当这3个线程中的任何一个运行完后,第4个线程接着补上.这种情况可以使用线程池来解决,线程池用起来也相当的简单,不信,你看: package com.dem ... 
随机推荐
- <?>与<T>的区别
			?是通配符(占位符),可以表示任意一个,T只是一种替代,只能表示其中一个 假设有A,B,C三个类 <?>可以是A,B,C任意一个,每一个<?>之间没有关联 <T>如 ... 
- .reverse ,join,split区分
			* 1:arrayObject.reverse() * 注意: 该方法会改变原来的数组,而不会创建新的数组. * 2:arrayObject.join() * 注意:join() 方法用于把数组中的所 ... 
- iView 初识
			iView和element-UI在table这块有有相似之处,但是与layui有不同的地方 在data数据这里有明显的不同,在iView中data数组下每个元素对象对应一行的数据:而layui中,da ... 
- Single Vendor Project in OpenStack
			1.astara: ptl: name: Ryan Petrello irc: ryanpetrello email: ryan.petrello@dreamhost.com irc-channel: ... 
- [转]how to use both JDK 7 and JDK 8 in one build
			Note: This article is original from https://gist.github.com/aslakknutsen/9648594 JDK 8 Released Most ... 
- unity 移动物体到指定位置的四种方法 【精确移动到指定位置,再也不是计算距离了,物体可以高速移动】
			方法1:使用Vector3.MoveTowards </pre><pre name="code" class="csharp">void ... 
- log4j的AppenderLayout格式符
			%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL. %d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd ... 
- mongodb连接失败原因排查
			安装了mongodb,添加了管理员root和test数据库的用户rex,并且开启的用户认证. 按照说明文档连接mongodb数据库:$mongo = new Mongo("mongodb:/ ... 
- 内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单
			欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 3月14日,腾讯旗下知名手游<QQ炫舞>正式上线各大应用商店,并迅速登上App Store免 ... 
- 使用pygame开发一个弹幕射击游戏(一)
			本文作为开发过程记录用. 目前游戏画面: 下一个添加的功能:敌机可以进行射击. 弹幕类 from pygame.sprite import Sprite from pygame import tran ... 
