我想做这样的事情:
import MyProcess
proc1 = MyProcess('python').start()
proc2 = MyProcess('bash').start()
### This would mimic what happens in a python shell
print(proc1('a=10')) ==> ___
print(proc1('a*2')) ==> 20
proc1('b=a*2')
print(proc1("print(b)") ==> 20
### This would mimic what happens in a bash shell
proc2("a=hello")
proc2("b=there")
c = proc2("echo \"$a $b\"")
print(c) ==> hello there
proc1.stop()
proc2.stop()
我不确定从哪里开始。我尝试使用subprocess
,但是一旦从我的上一个命令(发布了stdout
)读回process.stdin.write
,该过程似乎退出并且不会执行任何进一步的命令。此外,多处理可能更好,因为它可以更好地利用多核等资源。
我找不到任何多处理的例子,你可以在这里找到一个进程,发出一个命令,获取输出,发出另一个命令,得到那个输出等等。看起来它似乎始终是关于启动过程,然后让它完成。我是否需要这个过程来包装某种while True
循环?