1
yuelang85 Mar 15, 2016
fork 的时候可以拿到子进程 pid ,可以向子进程发 signal 。
|
2
knightdf Mar 15, 2016
这需要用进程来做?
|
3
lijianying10 Mar 15, 2016
方法有很多 Socket 通讯
如果是在同一台机器上可以用 Named pipe 高级一点就用 MPI 。 也许 Message Queue 也适合你。 这个是 Broker 的通讯方式。 如果你不想要 Broker 可以尝试 RPC ,类似 Thrift Grpc 都可以试试啊。 或者干脆基于事件分析,做个简单的 pub sub 也可以有。 以上这些总有一款适合你。当然我不是很了解您的情况。只是个人拙见。 |
4
wizardoz Mar 15, 2016
不明觉厉
|
5
Alchemistxxd Mar 15, 2016
看都看不懂
|
6
znoodl Mar 15, 2016
我觉得多线程更好处理呢,可以用线程间通信更合适,多线程有共享数据,又独立运行,主线程退出整个程序(包括其他线程)都会退出
|
7
jimzhong Mar 15, 2016
用管道或者 socket 吧
|
8
neoblackcap Mar 15, 2016 via iPhone
RPC 方法实在太多,不过自己实现的话,套用专家的说法,请基于 TCP 。否则就选各类 MQ 吧
|
9
ryanking8215 Mar 15, 2016
pipe+signal
|
10
ipconfiger Mar 15, 2016
用 Queue 啊
|
11
ipconfiger Mar 15, 2016
给个栗子给你
from multiprocessing import Process, Queue import os, time, random # 写数据进程执行的代码: def write(q): for value in ['A', 'B', 'C']: print 'Put %s to queue...' % value q.put(value) time.sleep(random.random()) # 读数据进程执行的代码: def read(q): while True: if not q.empty(): value = q.get(True) print 'Get %s from queue.' % value time.sleep(random.random()) else: break if __name__=='__main__': # 父进程创建 Queue ,并传给各个子进程: q = Queue() pw = Process(target=write, args=(q,)) pr = Process(target=read, args=(q,)) # 启动子进程 pw ,写入: pw.start() # 等待 pw 结束: pw.join() # 启动子进程 pr ,读取: pr.start() pr.join() # pr 进程里是死循环,无法等待其结束,只能强行终止: print '所有数据都写入并且读完' |
12
alexapollo Mar 15, 2016
明明有简单的方法,非要做的这么复杂
|
13
mckelvin Mar 16, 2016 via iPhone
如果你要实现某个功能而非学习的目的,可以用 zeromq 做
|