Linux——线程信号量 读写锁 线程的私有数据
来源:互联网 发布:工地临时用电计算软件 编辑:程序博客网 时间:2024/04/18 23:59
线程与进程
1.进程由于资源独立,进程的主要关注是解决资源共享
2.线程先天是数据共享,线程主要关注共享数据脏
1.互斥量(线程内)
读写锁
2.信号/条件量调度(线程之间)
信号量
一.线程的信号量
1.定义信号量sem_t
2.初始化信号量sem_init
3.操作信号量sem_post sem_wait
4.释放信号量sem_destroy
5.其他函数sem_getvalue
案例:
创建一个子线程
子线程-信号量(阻塞)
主线程+信号量(解除阻塞)
体会:
信号量可以累加
编程完成:
摇奖程序,继续暂停7位随机数
信号量/条件量/信号?
目的:选择哪种技术实现?
1.无法使用互斥与读写锁实现.
2.信号实现不稳定.
3.没有互斥建议不考虑条件量.
4.最佳选择信号量.
二.线程的读写锁
pthread_rwlock_t;
pthread_rwlock_init;
pthread_rwlock_destroy;
pthread_rwlock_rdlock;
pthread_rwlock_wrlock;
pthread_rwlock_unlock;
读读兼容
写写互斥
读写互斥
作用主要是为IO操作设计.
三.线程私有数据(了解)
pthread_key_create
pthread_key_delete
1.进程由于资源独立,进程的主要关注是解决资源共享
2.线程先天是数据共享,线程主要关注共享数据脏
1.互斥量(线程内)
读写锁
2.信号/条件量调度(线程之间)
信号量
一.线程的信号量
1.定义信号量sem_t
2.初始化信号量sem_init
3.操作信号量sem_post sem_wait
4.释放信号量sem_destroy
5.其他函数sem_getvalue
案例:
创建一个子线程
子线程-信号量(阻塞)
主线程+信号量(解除阻塞)
体会:
信号量可以累加
+-操作单位是1
sem.c
#include <pthread.h>#include <semaphore.h>#include <stdio.h>sem_t sem;//void *run(void*d){while(1){//3.sem_wait(&sem);printf("解除\n");}}main(){pthread_t tid;//2sem_init(&sem,0,5);pthread_create(&tid,0,run,0);while(1){//sleep(1);sem_post(&sem);//加信号量(信号量可以累加)}}
编程完成:
摇奖程序,继续暂停7位随机数
信号量/条件量/信号?
目的:选择哪种技术实现?
1.无法使用互斥与读写锁实现.
2.信号实现不稳定.
3.没有互斥建议不考虑条件量.
4.最佳选择信号量.
二.线程的读写锁
pthread_rwlock_t;
pthread_rwlock_init;
pthread_rwlock_destroy;
pthread_rwlock_rdlock;
pthread_rwlock_wrlock;
pthread_rwlock_unlock;
读读兼容
写写互斥
读写互斥
作用主要是为IO操作设计.
三.线程私有数据(了解)
pthread_key_create
pthread_key_delete
0 0
- Linux——线程信号量 读写锁 线程的私有数据
- linux c++多线程 线程私有数据 互斥量 条件变量 信号量 读写锁 自旋锁 屏障
- linux线程的私有数据
- linux线程的私有数据
- linux线程私有数据
- linux线程私有数据
- Linux线程私有数据
- 线程的私有数据
- 线程的私有数据
- 线程的私有数据
- 线程的私有数据
- linux线程私有数据的保护
- linux线程之线程私有数据 pthread_key_create方法的学习
- Linux系统编程——线程私有数据
- Linux系统编程——线程私有数据
- Linux线程私有数据pthread_key_t
- linux线程私有数据详解
- linux信号量实现线程读写同步
- java中华调用memcached
- JAVA学习第五十课 — IO流(四)转换流
- 全面解析SQL SERVER 的左右内连接
- soj 11598. XOR
- vim自动补全插件snipMate在ubuntu下的安装
- Linux——线程信号量 读写锁 线程的私有数据
- 我的学生作业2
- SQL-有条件查询数据
- java批量修改Excel文件 使用包jxl.jar
- STM32 串口通讯 发送 接收
- Block实战应用之button点击事件和Alert弹出框
- 关于“非法使用精神控制技术和生理武器罪”的刑法增修案(正式建议稿)
- Android不刷机下的app2sd方法(dex cache占空间解决篇)
- linux vim,vi编辑器的基础