首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
四个线程t1,t2,t3,t4,向4个文件中写入数据,t1只
[问答题]
四个线程t1,t2,t3,t4,向4个文件中写入数据,t1只能写入1,t2只能写入2,t3只能写入3,t4只能写入4,对4个文件A,B,C,D写入如下内容:
A:123412341234.....
B:234123412341....
C:341234123412....
D:412341234123....
怎么实现同步可以让线程并行工作?
添加笔记
求解答(0)
邀请回答
收藏(16)
分享
纠错
2个回答
添加回答
0
试试手气
mutex[4]= {0}
for(i =0; i<4;i = (i+1 )%4)
{
single(mutex[i])
wait(mutex[i]);
t_i;
single(mutex[(i+1)%4])
wait(mutex[(i+1)%4)])
.......
}
发表于 2015-06-23 21:21:20
回复(0)
0
Icebins
这个问题在操作系统课程中提到,利用信号量来实现线程的前趋关系
对于A来说,要求是线程1->2->3->4->1的关系,这样的话我们定义五个信号量mutex1,mutex2,mutex3,mutex4,mutex5,
初始化:signal(mutex1);
线程1的执行函数
wait(meutex1)
/....
写文件代码
signal(mutext2)
线程2的执行函数
wait(meutex2)
/....
写文件代码
signal(mutext3)
线程3的执行函数
wait(meutex3)
/....
写文件代码
signal(mutext4)
线程4的执行函数
wait(meutex4)
/....
写文件代码
signal(mutext5)
线程5的执行函数
wait(meutex5)
/....
写文件代码
signal(mutext1)
发表于 2015-06-22 22:55:01
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
盛趣游戏
并发
操作系统
上传者:
额头上有疤
难度:
2条回答
16收藏
22713浏览
热门推荐
相关试题
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
阿里巴巴2015实习生笔试题
无锁化编程有哪些常见方法?
阿里巴巴
并发
评论
(39)
来自
阿里巴巴2015实习生笔试题
在win32平台下,以下哪种方式无...
盛趣游戏
Windows
并发
评论
(8)
设某二叉树的先序遍历序列为abdg...
树
评论
(1)
2022 诺瓦科技 Perl re...
perl
System Verilog
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题