1. 作用
線程類饥悴,可以創(chuàng)建線程
2. 操作
Process類
# 多進(jìn)程multiprocessing
# Process([group [, target [, name [, args [, kwargs]]]]])
# target表示調(diào)用方法的名字
# args表示被target的位置參數(shù)元組
# kwargs表示target的字典
# name是別名
# group分組
import multiprocessing
def proc(name):
print('Oh, my son {}({}).'.format(name, os.getpid()))
if __name__ == '__main__':
print('Parent process {}.'.format(os.getpid()))
p = multiprocessing.Process(target=proc, name='myson', args=('Tom',))
print('Child process will start.')
p.start() # 開始進(jìn)程
# p.terminate()# 調(diào)用結(jié)束進(jìn)程
p.join() # 同步即纲,等待子進(jìn)程結(jié)束后往下運(yùn)行
print('Child {} process end.'.format(p.name))
for i in range(10):
p = multiprocessing.Process(target=proc, args=(i,))
p.start()
# p.join() # 直到active_children() = 0
print('CPU number: {}'.format(multiprocessing.cpu_count())) # cpu核心
for p in multiprocessing.active_children(): # 還在活動的線程
print('Child process name: {}, id: {}.'.format(p.name, p.pid))
繼承Process類
# 繼承Process 只要實(shí)現(xiàn)run方法
# deamon
# 設(shè)置為True粗梭,父進(jìn)程結(jié)束,子進(jìn)程會終止
from multiprocessing import Process, Lock
import time
class TestProcess(Process):
def __init__(self, count):
super(Process, self).__init__() # 調(diào)用父類的構(gòu)造函數(shù)
self.__count = count
def run(self): # start的時候運(yùn)行
for i in range(self.__count):
time.sleep(0.1)
print('Pid->{}, Count->{}.'.format(self.pid, i))
if __name__ == '__main__':
for i in range(10, 15):
p = TestProcess(i)
# p.daemon = True # 設(shè)置為True换怖,父進(jìn)程結(jié)束啄糙,子進(jìn)程會終止
p.start()
# p.join()
print('Main Process Ended')