当前位置: 技术问答>linux和unix
关于多进程同时接收终端输入的问题
来源: 互联网 发布时间:2016-01-30
本文导语: 假设系统由3个进程A、B、C组成,相互协作。 但3个进程各自都需要从终端(键盘)接收输入,而且各个进程处理的键值 有重叠。例如:如果输入‘A’,则肯定由进程A处理,如果输入‘B’,肯定由 进程B来处理...
假设系统由3个进程A、B、C组成,相互协作。
但3个进程各自都需要从终端(键盘)接收输入,而且各个进程处理的键值
有重叠。例如:如果输入‘A’,则肯定由进程A处理,如果输入‘B’,肯定由
进程B来处理;如果输入‘D’,则要根据上下文确定是由A还是B来处理。
但关键问题是:
当输入‘A’时,应该有进程A处理,但此时进程A,B,C都有线程试图从键盘
读取,如何保证肯定此时只能由进程A接收到‘A’呢?
但3个进程各自都需要从终端(键盘)接收输入,而且各个进程处理的键值
有重叠。例如:如果输入‘A’,则肯定由进程A处理,如果输入‘B’,肯定由
进程B来处理;如果输入‘D’,则要根据上下文确定是由A还是B来处理。
但关键问题是:
当输入‘A’时,应该有进程A处理,但此时进程A,B,C都有线程试图从键盘
读取,如何保证肯定此时只能由进程A接收到‘A’呢?
|
这样很麻烦哦,不如加一个管理进程M,负责从键盘读入,然后通过管道之类的东西把键盘输入转发给其它进程。