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系統則不需要寫

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