1. 作用
线程类,可以创建线程
2. 操作
Process类
# 多进程multiprocessing
# Process([group [, target [, name [, args [, kwargs]]]]])
# target表示调用方法的名字
# args表示被target的位置参数元组
# 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() # 开始进程
# p.terminate()# 调用结束进程
p.join() # 同步,等待子进程结束后往下运行
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 只要实现run方法
# deamon
# 设置为True,父进程结束,子进程会终止
from multiprocessing import Process, Lock
import time
class TestProcess(Process):
def __init__(self, count):
super(Process, self).__init__() # 调用父类的构造函数
self.__count = count
def run(self): # start的时候运行
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 # 设置为True,父进程结束,子进程会终止
p.start()
# p.join()
print('Main Process Ended')