shell中的并发实现

参考:

1. shell队列实现线程并发控制

2. shell队列实现线程并发控制(转)

一些重要点说明

1.shell中的多线程用&后台模式运行即可。

1.数组不能进程共享
2.有名管道可以做令牌
3.有名管道可以作为队列进程间共享

问题解答

(A)
有一段内容,多个进程共同消费,那么这个内容应该放在哪里呢?
(1)数组:不行。数组不能进程间共享。如a=(1 2 3),A进程消费了1 2,即使改变了数组,B进程还会从1,2消费。
(2)有名管道:推荐方式。将有名管道关联到文件描述符,后续取内容时,从文件描述符中取出即可。

(B)
在做线程等待限制时,有名管道中,最好放空的令牌。因为直接把文本放里面,可能多个线程(进程和线程在shell中暂不细究,说进程或线程均可)把文本拆分了。
再起一个管道作为进程间数据共享。

具体demo见ut的shell脚本。

猜你喜欢

转载自blog.csdn.net/answer100answer/article/details/104888412