Chinaunix

标题: shell没办法用内存共享来实现进程并发数的控制吗?? [打印本页]

作者: ryr1990    时间: 2014-03-16 11:38
标题: shell没办法用内存共享来实现进程并发数的控制吗??
shell如何控制并发进程数?
顺便问一下c语言中消息队列可以实现对并发进程数的控制,那可以用内存共享来实现吗?
作者: runintostar    时间: 2014-03-16 12:08
回复 1# ryr1990
内存共享好像不能吧,利用类似于队列的东西来控制可以的,网上搜搜很多的
http://bbs.chinaunix.net/forum.php?mod=redirect&goto=findpost&ptid=4125994&pid=24128838&fromuid=20835778
   
作者: r2007    时间: 2014-03-17 08:12
回复 2# runintostar


这个公式原型出自CU,能不能用shell做一个队列
http://bbs.chinaunix.net/forum.p ... 2&fromuid=45358

现在有个好东东叫parallel,专门做并发控制的相当专业。

http://www.gnu.org/software/parallel/

作者: waker    时间: 2014-03-17 08:54
3楼楼长在3楼
作者: r2007    时间: 2014-03-17 09:53
脖子还扭着,转过啦,n多年了。
作者: runintostar    时间: 2014-03-17 11:59
本帖最后由 runintostar 于 2014-03-17 13:20 编辑

回复 3# r2007

够呛,子shell修改了变量之后没法让父亲知道,如果不用通道的话,我估计只能通过子进程ID来判断
把子进程的sh文件里第一句就写$$。
父shell调子shell时用
  1. a=`(./xxx.sh &)|head -1`:$a
复制代码
把子进程id全收集起来,然后跟踪他们是否完成.判断资源池是否有余
   
作者: r2007    时间: 2014-03-17 12:19
回复 6# runintostar


    本来就是用的命名管道啊?
作者: runintostar    时间: 2014-03-17 13:22
回复 7# r2007

嗯嗯,我理解错了,我是说如果不用管道文件的话。估计就只能6#那样

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2