线程的取消类型|学习笔记

简介: 快速学习线程的取消类型

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频线程的取消类型】学习笔记,与课程紧密联系,让用户快速学习知识。

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


线程的取消类型

 

内容介绍

一.设置取消类型简介

二.运行过程

三.立即取消和不立即取消线程的取消类型

 

一.设置取消类型简介

pthread_setcancelstate 是设置取消状态,是设置这个线程是都能够被取消,是设置取消的状态,默认是取消点的时候才能够被取消,还可以设置取消类型。

 

二.运行过程

线程的取消类型

线程被取消后,该线程并不是马上终止,默认情况下线程执行到取消,运行到取消点的时候才结束,另外一种则是当被取消的时候,立马终止,这叫现程的取消类型,这个取消状态能否被取消然后默认是到取消点才取消,取消类型就是设置何时被取消,是立马终止还是运行到取消点才被终止,编程时可以通过 pathresd_setcancelyype 函数设置线程是否可以立即被取消。

三.立即取消和不立即取消

第一次参数是可以立即被取消

PTHREAD_CANCEL_ASYNCHRONOUS:立即取消

PTHREAD_CANCEL_DEFERRED:不立即被取消

oldtype:

保存调用线程原来的可取消类型的内存地址   到了取消点才会被取消,如果我在 while (1)没有冒号,加一个取消点,则不能被取消,但是可以调用 pathresd_setcancletype() 这个函数设置取消类型,当别的线程取消类型的时候,我这个则是立即被取消,以前的取消类型不管,第二个保存类型就直接有,即使循环里面没有取消点,也能够被取消,因为它设置了立马被取消,

如图    

image.gif然后就结束了,不用到取消点也能被取消,因为它的取消类型是立马被取消,这是设置取消类型。

相关文章
|
2月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
55 0
|
2月前
|
NoSQL 网络协议 关系型数据库
redis-学习笔记(redis 单线程模型)
redis-学习笔记(redis 单线程模型)
32 3
|
2月前
|
安全 Java 编译器
多线程 (下) - 学习笔记2
多线程 (下) - 学习笔记
29 1
|
2月前
|
存储 算法 Java
多线程 (下) - 学习笔记1
多线程 (下) - 学习笔记
28 1
|
2月前
|
设计模式 安全 NoSQL
多线程 (上) - 学习笔记2
多线程 (上) - 学习笔记
26 1
|
2月前
|
Java 数据库连接 程序员
【后台开发】TinyWebser学习笔记(2)线程池、数据库连接池
【后台开发】TinyWebser学习笔记(2)线程池、数据库连接池
39 4
多线程学习笔记(一)
创建线程有3种方式:继承Thread类、实现Runnable接口或Callable接口。继承Thread类时,重写run()方法并调用start()启动线程。实现Runnable接口时,实现run()方法,通过Thread的target创建线程对象并用start()启动。
|
2月前
|
Java API 调度
多线程 (上) - 学习笔记1
多线程 (上) - 学习笔记
25 0
|
2月前
|
Java C++
多线程学习笔记(二)
1. 子线程先执行:启动子线程后立即调用`join()`,主线程会等待子线程完成。 `suspend()`方法。 3. `synchronized` vs `Lock`:前者是关键字,后者是接口;前者可用在代码块和方法,后者在代码中显式;前者自动释放锁,后者需`finally`释放;前者无超时/中断控制,后者可设定;前者非公平,后者可公平/不公平,且支持读写锁。 4. `synchronized`底层实现:基于 Monitor 模型,JVM层面的锁定机制,通过 monitors 和 monitorenter/monitorexit 指令实现。
|
11月前
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
72 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置