from multiprocessing import Process, Queue
def f(q):
# will send the process id of the alternative child process
print q.get()
if __name__ == '__main__':
queue_A = Queue()
queue_B = Queue()
A = Process(target=f, args=(queue_A,))
B = Process(target=f,args=(queue_B,))
A.start()
B.start()
queue_A.put(B.pid)
queue_B.put(A.pid)
# do stuff....
选项3(我的首选方法):
获取执行终止的主进程。你知道吗
A = Process(target=a, args=())
B = Process(target=b,args=())
A.terminate()
B.terminate()
虽然我不建议子进程能够相互核攻击。就我个人而言,我会让主进程管理子进程。你知道吗
如果你想沿着你现在的路线走。一种方法是让主进程将child
A
的进程id传递给childB
(或者不管您想怎么做)。使用此进程ID,您可以传递给该进程,然后可以终止该进程。你知道吗方案1: 如果只有一个进程可以终止另一个进程,那么最简单的解决方案是首先启动进程
B
。然后将进程A
传递给进程B
的进程ID。你知道吗方案2: 为此,可以使用队列或管道(来自multiprocessing library)。你知道吗
选项3(我的首选方法): 获取执行终止的主进程。你知道吗
相关问题 更多 >
编程相关推荐