linux(线程,线程同步 方法 互斥锁 信号量 条件变量 )

//线程 进程内部的一条执行序列 一个进程中可以有多个线程

//进程是资源分配的最小单位 线程是CPU调度的最小单位

//进程有独立的地址空间 线程共享进程中的地址空间

//int pthread_create() 线程创建

//线程创造函数

//thread 线程ID

//attr 线程属性 (默认NULL)

// start_routine ; 线程入口函数

//arg 传递给线程函数的参数

//当主线程结束时 子线程也会结束

//线程的特性

//1 线程间并发执行,具体调度根据操作系统的不同决定

//2 资源共享 线程共享进程的资源(全局变量,堆内存,文件描述符)

//3 独立的栈空间 局部变量存储在各自的栈空间中

//int pthread_join(pthread_t thread,void **retval) 等待某个线程结束并回收线程资源

//thread; 等待的线程ID

//retval 接受线程返回值的指针

//void pthread_exit(void *retval)

//终止当前线程 并返回结果

//如果不需要返回值 填NULL;

//如果需要返回值 则必须指向全局变量或动态分配的内存(不能是栈上的内容,因为线程终止后会被释放)

//练习 创建全局变量val初值为0 创建俩个子线程运行val++ 每个子线程循环1000次 主线程打印val的值、

//线程同步 方法 互斥锁 信号量 条件变量 、

//信号量

// #include<semaphore.h>

//int sem_init (sem_t*sem,int pshared,unsigned int value);//初始化信号量

// sem 表示指向sem_t类型的指针

// pshare 决定信号量的共享范围 0 表示仅在当前进程内的所有进程共享 非0值 在多个进程内共享(需要将该信号量放在共享内存中)

// value 信号量的初值

//int sem_wait (sem_t*sem);//原子操作 将信号量-1 获取资源 如果信号量为0 该操作会堵塞 此时将线程放入等待队列

//int sem_post (sem_t*sem);//原子操作 将信号量+1 释放资源 随机从等待队列中唤醒一条线程

//int sem_destory (sem_t*sem);销毁初始化的信号量 释放所有也信号量有关的资源

//练习 实现俩个线程分别输出123和ABC

相关推荐
AAA@峥5 分钟前
CentOS7 搭建 ELK 企业级日志集群:从部署到日志可视化完整实战
运维·elk·centos
ZKNOW甄知科技12 分钟前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
叮咚侠19 分钟前
docker安装的kibana+elasticsearch,突然kibana界面打不开了
运维·jenkins
nVisual21 分钟前
数据中心机柜负载均衡与三相相位监控方案
运维·网络·负载均衡·数据中心布线·综合布线管理软件
国服第二切图仔23 分钟前
02-breakpoint-system
运维·harmonyos
Molesidy25 分钟前
【GUI】【AWTK】基于开阳平台的GUI界面设计环境搭建
linux·gui·awtk
变量未定义~34 分钟前
最小生成树1(Prim模板)、最小生成树2(kruskal模板)、最近公共祖先(模板)
算法
RisunJan37 分钟前
Linux命令-semanage(SELinux 策略管理)
linux·运维·服务器
这就是佬们吗37 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
LONGZETECH44 分钟前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车