周四,晴,记录生活分享点滴
参考博客1:https://www.cnblogs.com/yuanchenqi/articles/5745958.html
参考博客2:https://www.cnblogs.com/alex3714/articles/5230609.html
Python版本:3.5
创建多进程
多进程实现并发,全部CPU同时工作
多线程实现假并发,只有一个CPU工作,因为速度太快,先后顺序无法分辨
直接调用
from multiprocessing import Process import time def f(name): time.sleep(1) print('hello', name,time.ctime()) if __name__ == '__main__': p_list=[] for i in range(3): p = Process(target=f, args=('alvin',)) # 创建进程对象 p_list.append(p) p.start() for p in p_list: p.join() print('end')
from multiprocessing import Process import time class MyProcess(Process): def __init__(self): # 1.1更换进程名需要在self后加一个参数name super(MyProcess, self).__init__() #self.name = name # 1.2name重新赋值 def run(self): time.sleep(1) print ('hello', self.name,time.ctime()) if __name__ == '__main__': p_list=[] for i in range(3): p = MyProcess() # 1.3创建进程对象中里面需要加参数,例如chung,三个进程的名字都是chung,如果是每个进程有自己单独的名字,需要分开创建 p.start() p_list.append(p) for p in p_list: p.join() print('end')
父进程与子进程之间的关系
from multiprocessing import Process import os import time # 主进程 ----------------------- def info(title): print(title) print('module name:', __name__) # __name__是__main__,打印__main__ print('parent process:', os.getppid()) # 父进程号,用pycharm时,父进程是pycharm。每一个进程都有一个父进程 print('process id:', os.getpid()) # 本进程号 def f(name): info('