




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 2内存100 字节,线程T1 2内存100 字节,线程T1 欲填1线程T2 欲填0。但如果T1 执行50 个字节失去cpu,T2 执 1. 资源共享(独享资源则不会2. 调度随机(3. 。 。,B 该。(。 ,B 该。(。 。 初始化一个互斥锁(互斥量1 pthead_mutex_tmuetx= pthread_mutex_destroy pthead_mutex_tmuetx= pthread_mutex_destroy 函数 pthread_mutex_unlock 函数 pthread_mutex_trylock 函数 lock unlock 。后,T2T3T4 unlocklock。
2、 EBUSY:#include#include while(1)o sleep(rand()lock。 EBUSY:#include#include while(1)o sleep(rand()%3); /*模拟长时间操作共享资源,导致cpu易主,产生与时间有关的错误*/ pthread_twhile(1)O sleep(rand()%sleep(rand()%return 0; , f前后,分别加lock和 main flag = 5 在while中- main flag = 5 在while中- 在. 2. 1A锁,请求获得B2BA1. (读锁2. (写锁3. pthread_rwlock
3、_init pthread_rwlock_init 函 pthread_rwlock_rdlock 函数 函 函 函 函 #include函 函 函 #include#include t,i=while(1)t = counter;f(=write%d:%lu:counter=%d+counter=%dn,i,pthread_self(),t,+counter); i= while(1)read%d:%lu:%dn,i,pthread_self(),i= while(1)read%d:%lu:%dn,i,pthread_self(),pthread_t tid8; for(i=0; i3; f
4、or (i = 0; i 5; i+) for(i=0; inext; while (1) mp-num = rand() % 1000 + 1;head = mp;sleep(rand() % 5);argc,char, 如直接使用 sem_init sem_trywait 如直接使用 sem_init sem_trywait t sem_tsem; sem0信号量基本操作:| sem_init sem_init sem_destroy sem_wait t sem_trywait - (sem_waitlock和 sem_timedwait LL); time_tcur= structti
5、mespect; timespec 结构体变量t t.tv_sec = cur+1; 定时 1 秒 sem_timedwait(&sem,&t); LL); time_tcur= structtimespect; timespec 结构体变量t t.tv_sec = cur+1; 定时 1 秒 sem_timedwait(&sem,&t); 定义两个信号量:S0S为空 Tt(S空T t(S满假设: 线程到达的顺序是:T 生、T 生、T 那么: T1 S空-1S满+1 T 2 到达,S 空已经为 0, 阻塞T消 到达,将 S满-1S空 oworld 主要应用函数 主要应用函数 进程mutex #
6、include#include #includestructmt fd,structmt;memset(mm,0, ;memset(mm,0, pthread_mutex_init(&mm-mutex, &mm-mutexattr);mutex=if=0)for (i = 0; i 0)for(i=0;inum += 2;区【 fcntlcmd,./*arg*/F_SETLK(structflock*) 设置文件锁F_SETLKW(structcmd,./*arg*/F_SETLK(structflock*) 设置文件锁F_SETLKW(structflock*) 设置文件锁(lock)WF_
7、GETLK(structflock*) structflockshort l_type; off_t l_start; off_t l_len;_t 锁的类型:F_RDLCK 、F_WRLCK 、F_UNLCK 进程间文件锁示例:#include#include argc,charstructflockif(argc 2) if(fd=open(argv1,O_RDWR) 5个线程; 5- 5left(左手)right(右手i = (:ABC5123if(i=left=i,right =left=i,right=在:左:0if(i=left=i,right =left=i,right=在:左:04)if(i=left=0,right=left=i,right=while若,左右手都加锁成功-吃- 吃完-1. 2. 保证资源的获取顺序,要求每个线程获取资源的顺序一致。如:A1、2、3;B1、2、 3。若 B 为 3、2、1 则易出现死锁现象。; 5 if(i5) 5 if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级下册心理健康监测教学计划
- 大型基建项目安全生产措施
- 应用安全风险评估与应对方案创新创业项目商业计划书
- 黑米创新创业项目商业计划书
- 幼儿园火灾隐患排查整治计划
- 母婴家庭心理健康测评系统创新创业项目商业计划书
- 西师大城市地理学教案06城市职能分类
- 冬雨季装饰装修施工质量保证措施
- 2025年家电电商项目提案报告
- 高校管理者《卓有成效的管理者》心得体会
- 2024-2025学年北师大版数学八年级上册 第一章 勾股定理 单元试卷(含答案)
- 咯血护理新进展
- 2024版无人机研发与定制合同
- DB51∕T 990-2020 小型泵站设计规程
- 家庭装修管理协议样本
- 精神病缄默状态
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 婚礼流程及费用清单
- 智慧林业综合管理平台解决方案
- 4《地球-我们的家园》教学设计-2023-2024学年道德与法治六年级下册统编版
- GB/T 44353.2-2024动物源医疗器械第2部分:来源、收集与处置的控制
评论
0/150
提交评论