-python 中的模块
_ subprocess
- 完全跳过进程 使用进程
- 是派生进程的主要替代方案
- multiprocessiong
- 使用threading借口派生,使用子进程
- 允许为多核或者多cpu派生进程,接口跟threading非常相似
- concurrent.futures
- 新的异步执行模块
- 任务级别的操作
-多进程
- 进程间通讯(InterprocessCommnuication,IPC)
- 进程间无任何共享状态
- 进程创建 ↓
import multiprocessing from time import sleep,ctime def clock(interval): while True: print('开始时间 {}'.format(ctime())) sleep(interval) if __name__=="__main__": p = multiprocessing.Process(target = clock,args = (5,)) p.start() while True: print('睡眠----') sleep(1)
----------------------------------------------创建一个派生对象------------------------------------------------------------------
import multiprocessing import time class ClockProcess(multiprocessing.Process): """ 俩个函数比较重要 __init__ 构造函数 __run__ 执行函数 """ def __init__(self,interval): super().__init__() self.interval = interval def run(self): while True: print('开始时间{}'.format(time.ctime())) time.sleep(self.interval) if __name__=="__main__": p = ClockProcess(3) p.start() while True: print('666') time.sleep(1)
------------------------------在os 模块中查看pid和ppid以及他们的关系--------------------------------------------------------
from multiprocessing import Process import os def info(title): print(title) print(__name__) print('父类的id',os.getppid()) print('本身的id',os.getpid()) def f(name): info('function f') print('hello',name) if __name__ == "__main__": info('main line') p = Process(target=f,args=('bbb',)) p.start() p.join()