首页
题库
面试
求职
学习
竞赛
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收藏
23012浏览
热门推荐
相关试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
无锁化编程有哪些常见方法?
阿里巴巴
并发
评论
(39)
来自
阿里巴巴2015实习生笔试题
在win32平台下,以下哪种方式无...
盛趣游戏
Windows
并发
评论
(8)
BD的一般流程()
京东
产品
运营
2019
商务
商务拓展
评论
(1)
下面关于 Java 中的异常处理说...
Java
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题