• 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()
  • 相关阅读:
    用windows脚本实现文件下载
    pku1325 Machine Schedule
    中位数
    pku1468 Rectangles
    最小密度路径
    合并序列
    PowerDesigner(5)转载
    责任链模式
    PowerDesigner(3)转载
    解释器模式
  • 原文地址:https://www.cnblogs.com/Phantom3389/p/12711001.html
Copyright © 2020-2023  润新知