python 进程

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的运行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章