线程被取消的时候执行清理函数|学习笔记

简介: 快速学习线程被取消的时候执行清理函数

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频线程被取消的时候执行清理函数】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11068


线程被取消的时候执行清理函数

内容介绍

一.运行过程

二.取消过程

 

一.运行过程

验证线程被取消的时候,系统自动调用线程清理函数,分析以下程序

 

二.取消过程

被别的线程取消的时候,相当于它杀,那这个程序当中就创建了一个线程,一秒钟之后,pthread-join(tid,NULL)就将线程取消,将主线程取消,等它取消了之后,回收资源,程序结束.

线程进来之后就是打印提示信息,申请内存,注册清理函数

然后接下来,将内容拷进里面,睡到一秒就被主线程取消,取消之后执行不到三秒就被取消,一秒钟被取消后,

Printf(‘’before pop\n);

pthread-cleanup-pop(1)

这个函数就执行不了.

一秒钟之后Printf(‘’clean up prt = %s\n’’,(char *)arg );

Free((char *)arg);

就被执行,相当于线程被别的线程取消,就是执行的清理函数。image.gif

相关文章
|
2月前
|
存储 安全 数据管理
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
19 1
|
2月前
|
设计模式 安全 C++
【C++ const 函数 的使用】C++ 中 const 成员函数与线程安全性:原理、案例与最佳实践
【C++ const 函数 的使用】C++ 中 const 成员函数与线程安全性:原理、案例与最佳实践
238 2
|
2月前
|
存储 安全 Linux
【C/C++ 可重入函数与不可重入函数】理解C/C++ 中函数的可重入性以及与线程安全性的关系
【C/C++ 可重入函数与不可重入函数】理解C/C++ 中函数的可重入性以及与线程安全性的关系
38 0
【C/C++ 可重入函数与不可重入函数】理解C/C++ 中函数的可重入性以及与线程安全性的关系
|
9月前
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
66 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
|
4月前
|
存储 算法 Linux
一起聊聊内核中的线程:操作函数、进程状态、task_struct、举个例子、
一起聊聊内核中的线程:操作函数、进程状态、task_struct、举个例子、
65 0
|
5月前
|
Linux
Linux多线程基础函数使用
Linux多线程基础函数使用
29 0
|
6月前
|
存储 前端开发 C语言
C++11的多线程、function和bind、可变函数模板-2
C++11的多线程、function和bind、可变函数模板
51 1
|
6月前
|
安全 C++
C++11的多线程、function和bind、可变函数模板-1
C++11的多线程、function和bind、可变函数模板
51 0
|
7月前
|
存储 安全 Linux
Go语言学习笔记-进程和线程
Go语言学习笔记-进程和线程
36 0
Go语言学习笔记-进程和线程
|
8月前
|
安全 调度 C语言
iOS多线程之GCD-同步、异步、并发、串行、线程组、栅栏函数、信号量等全网最全的总结
iOS多线程之GCD-同步、异步、并发、串行、线程组、栅栏函数、信号量等全网最全的总结
492 1