• Python3 多进程


    多进程(multiprocessing)的用法和多线程(threading)类似,里面的函数也一样,start()为启动函数,join() 等待该进程运行结束,每一个进程也是由它的父进程产生

    1.简单的多进程:

    import multiprocessing
    import threading
    import time
    '''  进程的用法和线程类似 '''
    
    def thread_run():
        ''' 线程的run函数 '''
        print("线程的ID",threading.get_ident())  #打印当前线程ID
    
    def proce_run(name):
        ''' 进程的run函数 '''
        time.sleep(2)
        print("Hello %s"%name)
        t = threading.Thread(target=thread_run,)
        t.start()  #进程中运行线程
    
    if __name__ == "__main__":
        for i in range(5):
            p = multiprocessing.Process(target =proce_run,args=("process_%s"%i,))
            p.start()  #启动进程
    

      运行结果:

    Hello process_0
    线程的ID 6676
    Hello process_2
    线程的ID 7876
    Hello process_3
    线程的ID 8904
    Hello process_1
    线程的ID 7268
    Hello process_4
    线程的ID 8732

    2.证明进程是由父进程产生的:

    from multiprocessing import Process
    import os
    '''  子进程都是有父进程启动的 '''
    
    def info(title):
        print(title)
        print("module_name",__name__) #模块名
        print("父进程",os.getppid())  #父进程的 PID
        print("当前进程",os.getpid()) #当前进程的 PID
        print("
    
    ")
    
    def pro_run(name):
        info(name)
    
    if __name__ == "__main__":
        info("33[32;1mmain process line33[0m")
        p = Process(target=pro_run,args=("33[31;1mcalled from child process function pro_run33[0m",))
        p.start() #启动子进程
    

      运行结果 其中9204是pycharm产生的进程,8576是当前进程,5284是我们创建的进程:

    main process line
    module_name __main__
    父进程 9204
    当前进程 8576
    
    called from child process function pro_run
    module_name __mp_main__
    父进程 8576
    当前进程 5284
    

      

  • 相关阅读:
    FILTER(过滤器)
    HDFS优缺点
    python运算符
    python变量类型
    python变量存储
    python编码问题
    【一:定义】python 简介
    如何学一门新技术
    Django安装
    redis 安装及启动关闭
  • 原文地址:https://www.cnblogs.com/bert227/p/9980362.html
Copyright © 2020-2023  润新知