当前位置: 技术问答>linux和unix
Linux下的多进程编程
来源: 互联网 发布时间:2016-04-17
本文导语: 首次接触linux的多进程编程问题,有点不知所措。求个例子。 例子要求: 使用fork(不要使用vfork,这个好像会限制执行顺序)创建3个进程,用2个数组。 第一个进程给数组1赋值, 第二个进程将数组1的值乘以10放到数...
首次接触linux的多进程编程问题,有点不知所措。求个例子。
例子要求:
使用fork(不要使用vfork,这个好像会限制执行顺序)创建3个进程,用2个数组。
第一个进程给数组1赋值,
第二个进程将数组1的值乘以10放到数组2中,操作一个数便将数组1的数删除。
第三个进程将数组2的值输出。将输出的值从数组2中删除。
这样的程序是不是还要用到信号量,控制不同进程对数组的写操作和删除操作。
感觉这个程序不是很难,只是刚接触这个,写不出来。
在线等。。。谢谢各位!!
例子要求:
使用fork(不要使用vfork,这个好像会限制执行顺序)创建3个进程,用2个数组。
第一个进程给数组1赋值,
第二个进程将数组1的值乘以10放到数组2中,操作一个数便将数组1的数删除。
第三个进程将数组2的值输出。将输出的值从数组2中删除。
这样的程序是不是还要用到信号量,控制不同进程对数组的写操作和删除操作。
感觉这个程序不是很难,只是刚接触这个,写不出来。
在线等。。。谢谢各位!!
|
编程还是你自己实现 建议
一. 数组放在共享内存中
二. 在对数组进行操作时,要进行同步和互斥的操作,也就是你要实用信号灯,在第一个进程没有完成对数组一赋值前,别让进程二存取数组,同理对进程三也适用
一. 数组放在共享内存中
二. 在对数组进行操作时,要进行同步和互斥的操作,也就是你要实用信号灯,在第一个进程没有完成对数组一赋值前,别让进程二存取数组,同理对进程三也适用
|
用共享内存,简单的话不需要使用信号量。只要父进程阻塞等待子进程结束就可以,如用wait或者waitpid.
具体用法可以参考相关书籍。
1.父进程创建共享内存
2.子进程操纵共享内存
3.父进程等待子进程退出
具体用法可以参考相关书籍。
1.父进程创建共享内存
2.子进程操纵共享内存
3.父进程等待子进程退出
|
自己写吧,我相信回复的还是有责任的。
我写了一个,可以达到LZ的要求
我写了一个,可以达到LZ的要求
|
http://lym54533442.blog.163.com/edit/#pn2