使用multiprocessing模塊創建進程

**

查看如何使用Process這個類創建進程

**
Process([group [, target [, name [, args[, kwargs] ] ] ] ] )
參數註釋:

group 參數未啓用,一般爲None
target 進程調用時執行的可調用對象
name 進程指定描述性名稱的字符串
args 傳遞的是一個位置參數元組
kwargs 傳遞的是一個位置參數字典

創建進程的第一種方法:

from multiprocessing import Process
import time
import os


def clock(interval):
    while True:
        print("現在時間是%s,該進程id是%d" % (time.ctime(), os.getpid()))
        time.sleep(interval)


if __name__ == '__main__':
    p = Process(target=clock, args=(2,))
    p.start()

運行結果

現在時間是Wed Jul 10 14:29:26 2019,該進程id是8664
現在時間是Wed Jul 10 14:29:28 2019,該進程id是8664
現在時間是Wed Jul 10 14:29:30 2019,該進程id是8664
現在時間是Wed Jul 10 14:29:32 2019,該進程id是8664
#程序每隔兩秒一直運行下去,直到耗盡內存

第二種方法是重寫run方法

from multiprocessing import Process
import time
import os


class ClockProcess(Process):
    def __init__(self, interval):
        Process.__init__(self)
        self.interval = interval

    def run(self):                    #這個規定寫法
        while True:
            print("現在時間是%s,該進程id是%d" % (time.ctime(), os.getpid()))
            time.sleep(self.interval)


if __name__ == '__main__':
    p = ClockProcess(1)
    p.start()
    print(p.pid)
    #運行結果一樣,只不過進程ID變了

Process的實例方法參考:

p.is_alive() p進程在運行則返回True
p.join() 等待進程結束
p.start() 啓動進程,這將運行進程的子進程,並調用該子進程的run()方法
p.run() 進程啓動時調用的run方法,繼承自Process類
p.terminate() 強制終止進程,調用此函數,進程p將會被立即終止 ,同時不會有清理的動作,如果進程p有自己的子進程,則全部變爲殭屍進程
p.authkey 進程的身份驗證
p.daemon 該函數必須在start()之前使用,一個布爾標誌,指示進程是否爲後臺進程,當創建的進程被終止,則後臺進程將自動終止
p.name 進程名稱
p.pid 進程的整數進程ID
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章