import multiprocessing import time def task01(): for i in range(5): time.sleep(1) print('I am task01'+str(i)) def task02(): for i in range(5): time.sleep(1) print('I am task02'+str(i)) if __name__ == '__main__': p1 = multiprocessing.Process(target=task01) # multiprocessing.Process创建了子进程对象p1 p2 = multiprocessing.Process(target=task02) p1.daemon = True # 设置p1子进程为守护进程 p1.start() #子进程 启动 p2.start() print('I am main task') # # 1.当主进程结束后,会发一个消息给子进程(守护进程),守护进程收到消息,则立即结束 # 2.CPU是按照时间片轮寻的方式来运行多进程的。哪个合适的哪个运行,如果你的子进程里都有time.sleep。 # 那我CPU为了不浪费资源,肯定先去干点其他的事情啊。 # 守护进程主要用来做与业务无关的任务,无关紧要的任务,可有可无的任务,比如内存垃圾回收,某些方法的执行时间的计时等
p.start | 开始执行子线程 |
p.name | 查看子进程的名称 |
p.pid | 查看子进程的id |
p.is_alive | 判断子进程是否存活 |
p.join(timeout) |
阻塞主进程,当子进程p运行完毕后,再解开阻塞,让主进程运行后续的代码 如果timeout=2,就是阻塞主进程2s,这2s内主进程不能运行后续的代码。过了2s后,就算子进程没有运行完毕,主进程也能运行后续的代码 |
p.terminate | 终止子进程p的运行 |