python多進程之Process


  1. 由於fork創建進程不能在windows系統上使用,所以產生了multiprocessing.Process
  2. Process可以直接實例化然后用start調用,需要指定新的進程執行的函數,用元組的方式傳遞參數
  3. 進程對象的join方法會讓主進程阻塞,直到子進程執行結束才往下執行,timeout參數可以指定超時時間
  4. Process實現的進程,主進程會等所有子進程執行完畢之后才關閉
  5. 類似Java多線程實現方式,繼承Process類,重寫run方法,然后實例化,再調用start方法
from multiprocessing import Process
import os
import time


def test(arg):
    print(arg)
    time.sleep(4)
    print("the process %s is executing "%os.getpid())


p1 = Process(target=test, args=("haha",))  # 以元組的形式傳遞參數
p1.start()

p1.join(timeout=2)  # 子進程執行結束之后主進程才繼續往下執行
# timeout設置超時時間 超過這個時間如果子進程還沒結束 主進程將繼續執行

# p1.terminate()  # 殺死p1進程

print("finish")  # 主進程執行完之后並不會關閉 而是會等子進程執行結束再關閉


# 類似Java多線程  繼承Process類  重寫run方法 實例化 start調用
class MyProcess(Process):

    def run(self):
        time.sleep(3)
        print("haha...")


m1 = MyProcess()
m1.start()
print("主進程執行到這里了....")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM