Python 多线程及多进程结合使用

 1 q = queue.Queue()
 2 
 3 def producer(task):
 4     q.put(task)
 5 
 6 
 7 def consumer():
 8     while True:
 9         task = q.get()
10         p = multiprocessing.Process(target=cli.start, args=task)
11         p.start()
12         p.join()    # 进程堵塞直到结束
13         p1 = multiprocessing.Process(target=fortify_engine.start, args=task)
14         p1.start()
15         p1.join(1200)  # 进程堵塞超时时间设置
16         if p1.is_alive():
17             p1.terminate()  # 关闭进程
18             print(task,"Process Timeout, be Terminated !!!")
19             p1.join()   # 处理关闭后形成僵尸进程的现象
20         q.task_done()
21 
22 threads = []
23 for i in range(3):  
24     threads.append(threading.Thread(target=consumer, args=()))
25 
26 for i in threads:
27     i.setDaemon(daemonic=True)
28     i.start()
原文地址:https://www.cnblogs.com/Phantom3389/p/12711001.html