**
查看如何使用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 |