多线程
文章平均质量分 84
Hani_97
Stay hungry,stay foolish。
展开
-
多线程(19)线程分离/脱离,结合 pthread_detach
多线程(19)线程分离/脱离,结合 pthread_detach 1. 线程的两种状态——可结合、可分离1.1 可结合态(线程的默认属性):1.2 分离态2. 线程分离函数:pthread_detach2.1 pthread_detach 的两种用法:3. 创建分离线程伪代码:4. pthread_attr_XXX 系列api1. 线程的两种状态——可结合、可分离线程分为两种状态:可结合态和分离态;默认情况下,线程被创建成可结合的。1.1 可结合态(线程的默认属性):这种状态下的线程是能够被其他进程原创 2021-10-27 17:48:53 · 837 阅读 · 0 评论 -
多进程和多线程间通信总结[一]
进程间通信和线程间通信总结1. 进程间通信1.1 socket - 网络中进程间通信1.1.1 socket1.1.2 代码示例1.2 消息队列 - 同一主机上的进程通信方式1.2.1. Linux中的消息队列其实就是一个文件。1.2.2. 消息队列的本质其实是一个内核提供的链表。1.2.3. 消息队列的缺点1.2.4 消息队列-ftok msgget msgsnd msgrcv msgctl 接口1.2.1 伪代码示例:1.3 信号量(Semaphore) - 同一主机上的进程通信方式1.3.1 信号量接原创 2021-07-01 11:11:53 · 876 阅读 · 0 评论 -
多线程(18) pthread_cond_broadcast
多线程(18) pthread_cond_broadcast1. pthread_cond_broadcast 唤醒所有被阻塞的线程1.1 pthread_cond_broadcast 和 pthread_cond_signal2. 代码例子说明2.1 情况1:多个线程等待同一个cond,并且想对同一个mutex加锁。2.1.1 使用 pthread_cond_signal 通知2.1.2 使用 pthread_cond_broadcast 通知2.1.3 分析:2.2 情况2:多个线程等待同一个cond,原创 2020-12-23 19:30:30 · 9205 阅读 · 1 评论 -
多线程(17) pthread_sigmask 及 线程安全和可重入
多线程(17) pthread_sigmask 及 线程安全和可重入1. pthread_sigmask 用作在主调线程里控制信号掩码1.1 定义1.2 接口 其接口与 sigprocmask 一样1.2.1 参数:1.3 pthread_sigmask sigprocmask 区别:参考2. 线程安全 和 可重入2.1 线程安全 定义2.1.1 例子说明2.2 可重入 定义2.2.1 确保可重入条件2.2.2 不可重入的后果:2.2.3 不可重入特点2.3 可重入与线程安全 关系参考1. pthread原创 2020-12-23 19:29:35 · 1624 阅读 · 0 评论 -
多线程(15) pthread_setcancelstate 及 其他线程取消函数
多线程(15) pthread_setcancelstate 及 其他线程取消函数1. pthread_setcancelstate 定义:对Cancel信号的反应1.2. 接口及参数1.3. 代码例子:2. 其他线程取消(pthread_cancel)相关函数:pthread_cancel pthread_setcanceltype pthread_testcancel等2.1 pthread_cancel2.2 pthread_setcanceltype2.3 pthread_testcancel3.原创 2020-12-23 19:28:16 · 5906 阅读 · 0 评论 -
多线程(16) pthread_once
多线程(16) pthread_once1. pthread_once定义2. 接口参数3. 代码例子1. pthread_once定义在多线程环境中,有些事仅需要执行一次。使用(某个时间在整个程序中仅执行一次,不确定是那个线程)2. 接口参数int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));功能:本函数使用初值为PTHREAD_ONCE_INIT的once_control变量保证init_r原创 2020-12-23 19:27:02 · 839 阅读 · 0 评论 -
c单线程及多线程处理python
c单线程及多线程处理python1. c单线程处理python2. c多线程处理 python 踩坑教训2.1 主线程 初始化代码2.2 主线程 去初始化代码2.3 c线程python处理:参考:1. c单线程处理python……#include <python3.7m/Python.h>……/* 其他初始化处理 pcRespJson 接收python函数返回值 */const char *pcRespJson = NULL;/* python 对象初原创 2020-09-06 15:01:05 · 353 阅读 · 0 评论 -
多线程(14)线程的亲和性
多线程(14)线程的亲和性CPU的亲和性原因:优点CPU的亲和性就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,也称为CPU关联性原因:在多核运行的机器上,每个CPU本身自己会有缓存,缓存着进程使用的信息,而进程可能会被OS调度到其他CPU上,如此,CPU cache命中率就低了优点当绑定CPU后,程序就会一直在指定的cpu跑,不会由操作系统调度到其他CPU上,...原创 2020-04-08 16:20:19 · 837 阅读 · 0 评论 -
多线程(13)prctl 和 pthread_setname_np 线程命名
多线程(13)prctl 线程命名1. prctl()1.1 功能1.2 用法1.3 参数参考1. prctl()1.1 功能用 prctl 给线程命名iErr = prctl(PR_SET_NAME, “dpi_apt”);1.2 用法iErr = prctl(PR_SET_NAME, “Hello_project”);1.3 参数prctl(PR_SET_NAME, “proc...原创 2020-03-09 15:10:11 · 8988 阅读 · 2 评论 -
多线程(12)atomic 原子操作系列接口
多线程(12)atomic 原子操作系列接口参考参考https://www.cnblogs.com/still-smile/p/11652788.html原创 2020-03-09 14:24:30 · 1702 阅读 · 0 评论 -
多线程(11)多线程同步之信号量(Linux实现)
多线程(11)多线程同步之信号量(Linux实现)原创 2020-02-27 12:52:14 · 1894 阅读 · 1 评论 -
多线程(6)多线程同步之临界区(Linux实现)
Linux多线程(5)多线程同步之临界区(Linux)1. 什么是临界资源,临界区?2.临界区的特点3. 接口(Linux实现)4. 例子-linux参考1. 什么是临界资源,临界区?临界资源多线程之间可能需要互斥的访问一些全局变量,这就需要互斥的来访问,这些需要共享访问的字段被称作是 临界资源临界区就是访问临界资源的那一段代码称作临界区2.临界区的特点临界区在任意时刻...原创 2020-02-27 12:11:58 · 4098 阅读 · 0 评论 -
多线程(3)临界区,互斥量和信号量的区别
Linux多线程(3)临界区,互斥量和信号量的区别1 临界区,互斥量和信号量使用范围2 互斥量和信号量的区别2.1 互斥量用于线程的互斥,信号量用于线程的同步2.2 互斥量值只能为0或1,信号量值可以为非负整数。1 临界区,互斥量和信号量使用范围信号量:可以被任何进程,任何线程获取和释放互斥量:不限进程,但是哪个线程获取,哪个线程释放临界区:仅限于本进程使用2 互斥量和信号量的区别2....原创 2020-02-26 23:44:19 · 1135 阅读 · 0 评论 -
多线程(2)什么是:互斥,同步,条件变量,原子操作?
Linux多线程(2)互斥,同步,原子操作1.什么是互斥?2.什么是同步?3.什么是原子?参考1.什么是互斥?互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。2.什么是同步?同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥, 特别是所有写入资源的...原创 2020-02-26 23:38:16 · 387 阅读 · 0 评论 -
多线程(4)什么是锁?锁机制,死锁等说明
Linux多线程(1)锁机制1. 什么是锁?2. 锁的种类2.1.互斥锁2.2.读写锁2.3.自旋锁2.3.1 自旋锁和互斥锁区别2.4.递归锁3 死锁3.1 死锁常见代码形式3.1.1 死锁情况1:3.1.2 死锁情况2:1. 什么是锁?实现了对临界资源的互斥访问2. 锁的种类锁的种类:互斥锁,读写锁,自旋锁,递归锁2.1.互斥锁以排他的方式防止数据被同时修改2.2.读写锁允许...原创 2020-02-26 23:32:36 · 1369 阅读 · 0 评论 -
多线程(10)多线程同步之信号量(windows实现)
多线程同步(4)信号量(windows实现)1.概念2.出现原因3.互斥量和信号量的根本区别4.接口函数5. 信号量的使用规则6.代码例子7. 参考1.概念信号量:解决多个线程同时访问一个共享资源问题。2.出现原因锁机制只能判断临界资源是否被占用,所以他解决了互斥问题,但是他不能用于同步问题。互斥量用于线程的互斥,信号量用于线程的同步。3.互斥量和信号量的根本区别互斥量用于线程的互斥...原创 2020-02-26 22:36:51 · 595 阅读 · 0 评论 -
多线程(9)多线程同步之事件对象(windows实现)
多线程同步(3)事件对象(windows实现)1. 事件(对象)的概念:2.接口函数2.1 创建事件-CreateEvent2.1 原型2.2 说明2.3 参数-bManualReset2.4 举例子:2.1 设置信号状态-SetEvent3.代码例子4. TJ代码实现 以vad为例5. 参考1. 事件(对象)的概念:事件是内核对象,多用于线程间通信,可以跨进程同步,用于一个线程来唤醒另一个线...原创 2020-02-26 22:25:08 · 379 阅读 · 0 评论 -
多线程(8)多线程同步之互斥量+条件变量(linux实现)
多线程同步(3)互斥量+条件变量(linux实现)1 互斥量定义2 互斥量2.1 互斥量接口(linux)2.1.1 pthread_mutex_t mutex2.1.2 pthread_mutex_init2.1.3 pthread_mutex_lock2.1.4 pthread_mutex_unlock2.1.5 pthread_mutex_trylock2.1.6 pthread_mut...原创 2020-02-26 20:27:51 · 413 阅读 · 0 评论 -
多线程(1)线程创建,等待,结束等接口(Linux)
Linux多线程(1)线程接口1. 线程创建-pthread_create1.1原型1.2 参数1.3 返回值1.4 -lpthread2. 线程等待-pthread_join2.1 原型2.2 参数2.3 返回值3. 线程结束-pthread_exit3.1 原型3.2 参数4. 获取当前线程ID-pthread_self5. 线程分离-pthread_detach5.1原型5.2 参数5.3 ...原创 2020-02-26 15:45:23 · 612 阅读 · 0 评论 -
多线程(7)多线程同步之互斥量(windows实现)
通俗易懂说-多线程同步(2)互斥量1. 互斥量定义2. 接口(Windows实现)3. 接口(Linux实现)4. 例子1. 互斥量定义互斥量用来确保一个线程独占一个资源的访问。互斥量是一个内核对象。互斥量与临界区非常相似,并且互斥量可以用于不同进程中的线程互斥访问。2. 接口(Windows实现)1. CreateMutex() //创建一个互斥量资源对象2. Wai...原创 2019-04-11 21:12:33 · 380 阅读 · 0 评论 -
多线程(5)多线程同步之临界区(windows实现)
通俗易懂说-多线程同步(1)临界区1. 临界区定义2. 接口(windows实现)3. 接口(Linux实现)4. 例子1. 临界区定义临界区在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么有线程进入后,其他线程试图访问时将被挂起,直到进入临界区的线程离开。2. 接口(windows实现)1. CRITICAL_SECTION &sec; ...原创 2019-04-11 20:52:35 · 466 阅读 · 0 评论