from multiprocessing import Process#调用multiprocessing中的Process模块 import time import os # # def fn(i): # time.sleep(1.25) # print("这是子进程的pip%s,父进程的为pip%s"%(os.getpid(),os.getppid()))#获得pid,使用getpid() # # if __name__=="__main__": # for i in range(2): # p=Process(target=fn,args=(i,))#target是子进程要执行的任务,args传的是参数,以元祖的形式传值 # p.start()#开启子进程,底层调用run函数 # print("这是子进程的pip%s,父进程的pip为%s"%(os.getpid(),os.getppid())) #并行,同一时间点同时执行;并发,一段时间间隔内先后执行 #同步,两个任务相互依赖,都成功则成功,需等待上个任务完成才能执行,比较可靠;异步,同时执行,两个任务在宏观上同一个时间执行 #阻塞与非阻塞取决于等待消息通知的状态. # def fn(i): # time.sleep(2) # print(666) # # if __name__=="__main__": # p=Process(target=fn,args=(2,)) # # p.daemon=True#父进程终结后,子进程也进行终结 # p.name="zmc" # p.start() # # p.terminate()#杀死子进程 # # time.sleep(0.2) # print(p.name,p.pid) # print(p.is_alive())#判断子进程是否运行 # p.join(timeout=3)#将父进程与子进程的异步状态转换为同步状态,等待子进程完成后父进程再进行运行;里面timeout取值过小保持异步状态 # print(777)#父进程等待子进程运行完再关闭 # def fn(i): # print(i**2) # # # if __name__ == '__main__': # lst=[] # for i in range(2,6): # p=Process(target=fn,args=(i,)) # p.start() # p.join() # # lst.append(p) # # [p.join()for p in lst] # print(666) #创建进程的另一种方式: class my_Process(Process): def __init__(self): super(my_Process, self).__init__() def run(self): print("这是子进程") if __name__ == '__main__': p=my_Process() start=time.time() p.run() print(time.time()-start)