Python 创建子进程

1. multiprocessing模块

简单使用

from multiprocessing import Process
import time


def time_a():
    time.sleep(2)
    print("Hello,我是第一个")
def time_b():
    time.sleep(2)
    print("我是第二个")

# a.time_a(1)
# a.time_b(1)

if __name__ == '__main__':
    print("多线程")
    # 创建一个子进程
    p1 = Process(target=time_a,)
    p2 = Process(target=time_b,)
    # 启动子进程
    p1.start()
    for i in range(5):
        print(i)
        time.sleep(i)
    p2.start()

2. for 循环创建进程

from multiprocessing import Process
import time


def time_a(i):
    time.sleep(3)
    print("Hello,",i)

if __name__ == '__main__':
    for i in range(20):
        # target 调用函数 args 传参
        p1 = Process(target=time_a,args=(i,))
        p1.start()

3. 传参的两种方式

from multiprocessing import Process
import time


def time_a(i):
    print("Hello,",i)

if __name__ == '__main__':
    for i in range(2):
        # kwargs 传递的json格式参数,第一个键是对应函数中的 i
        p1 = Process(target=time_a,kwargs={'i':"刘老六"})
        p2 = Process(target=time_a,args=("吴老五",))
        p1.start()
        p2.start()

4. 类 的子进程创建方式 及等待子进程执行结束

from multiprocessing import Process
import time

class Pr(Process):
    def __init__(self,qq):
        # 此处执行父类的init 方法
        super().__init__()
        self.qq = qq
    def run(self):
        time.sleep(2)
        print(" run ",self.qq)

if __name__ == '__main__':
    # 类的传参
    p1 = Pr('canshu')
    # 此处没有写具体那一个方法 但是start 方法默认就会调用run方法
    p1.start()
    # join 是等待上面的子进程执行结束后 才继续向下执行
    p1.join()
    print("回到主进程")

if name == ‘main’: 是必加参数 没有则报错

源自Linux系统则不需要写

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章