zoukankan      html  css  js  c++  java
  • python多进程之Process

    1. 由于fork创建进程不能在windows系统上使用,所以产生了multiprocessing.Process
    2. Process可以直接实例化然后用start调用,需要指定新的进程执行的函数,用元组的方式传递参数
    3. 进程对象的join方法会让主进程阻塞,直到子进程执行结束才往下执行,timeout参数可以指定超时时间
    4. Process实现的进程,主进程会等所有子进程执行完毕之后才关闭
    5. 类似Java多线程实现方式,继承Process类,重写run方法,然后实例化,再调用start方法
    from multiprocessing import Process
    import os
    import time
    
    
    def test(arg):
        print(arg)
        time.sleep(4)
        print("the process %s is executing "%os.getpid())
    
    
    p1 = Process(target=test, args=("haha",))  # 以元组的形式传递参数
    p1.start()
    
    p1.join(timeout=2)  # 子进程执行结束之后主进程才继续往下执行
    # timeout设置超时时间 超过这个时间如果子进程还没结束 主进程将继续执行
    
    # p1.terminate()  # 杀死p1进程
    
    print("finish")  # 主进程执行完之后并不会关闭 而是会等子进程执行结束再关闭
    
    
    # 类似Java多线程  继承Process类  重写run方法 实例化 start调用
    class MyProcess(Process):
    
        def run(self):
            time.sleep(3)
            print("haha...")
    
    
    m1 = MyProcess()
    m1.start()
    print("主进程执行到这里了....")
    
  • 相关阅读:
    用图片来代替字符串
    下载网页时的 有gzip压缩的处理
    位置不固定验证码的识别
    CookieContainer 与 Session
    Thread Pool 备忘
    用 SGMLReader把子HTML 转 XML
    非asp.net控件实现回发 button
    ajax.net ??= 回车
    如何写需求分析
    jsp中地址
  • 原文地址:https://www.cnblogs.com/endurance9/p/8047554.html
Copyright © 2011-2022 走看看