多进程(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 line 33[0m") p = Process(target=pro_run,args=(" 33[31;1mcalled from child process function pro_run 33[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