Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用另一个进程终止进程python多处理_Python_Multiprocessing - Fatal编程技术网

使用另一个进程终止进程python多处理

使用另一个进程终止进程python多处理,python,multiprocessing,Python,Multiprocessing,我正在尝试用Python创建一个脚本。其想法是启动3个进程,其中两个进程不断打印消息,第三个进程会在几秒钟后杀死它们。问题是我不知道如何告诉第三方应该终止哪些进程 from multiprocessing import * import time def OkreciLevi(): while 1: print "okrecem levi" time.sleep(3) def OkreciDesni(): while 1:

我正在尝试用Python创建一个脚本。其想法是启动3个进程,其中两个进程不断打印消息,第三个进程会在几秒钟后杀死它们。问题是我不知道如何告诉第三方应该终止哪些进程

from multiprocessing import *
import time

def OkreciLevi():
   while 1:
       print "okrecem levi"
       time.sleep(3)

def OkreciDesni():
   while 1:
       print "okrecem desni"
       time.sleep(3)

def Koci(levi,desni):
   for vrednost in range(2):
       print str(vrednost)
       time.sleep(3)
   levi.terminate()
   desni.terminate()
   print "kocim"

if __name__== '__main__':
   levi=Process(target=OkreciLevi)
   desni=Process(target=OkreciDesni)
   koci=Process(target=Koci, args=(levi,desni))
   koci.start()
   levi.start()
   desni.start()
   levi.join()
   desni.join()
   koci.join()

假设您使用的是类似于*nix的操作系统,我想您需要:

  • 多处理工作者的能力
  • 向他们发送
    SIGTERM
    。例如,使用
    os.kill

    也可能对你有用

    还有,为什么不能使用一个队列或两个队列?我是塞尔维亚人,用塞尔维亚语写函数名。很抱歉。我试过使用SIGTERM,但它无法识别signal.SIGTERM,所以我想是否有其他方法可以做到这一点。另一个问题是从进程levi和desni获取PID以处理koci。@JaSamSale,将您的代码发布到任何在线服务(例如),我们将尝试找到解决方法。我找到了一种解决方法,但现在我想知道为什么这不起作用。