Python3 多进程
Posted CansonHai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("\\n\\n") def pro_run(name): info(name) if __name__ == "__main__": info("\\033[32;1mmain process line\\033[0m") p = Process(target=pro_run,args=("\\033[31;1mcalled from child process function pro_run\\033[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
以上是关于Python3 多进程的主要内容,如果未能解决你的问题,请参考以下文章