multiprocessing
其中常用到的几个功能
Process
用于定义进程
#定义进程有两种方式
from multiprocessing import Process
#第一种方式定义个方法
def func(aaa):
pritn(123)
if __name__ == '__main__':
process = Process(target=func,args=(123,)) #将target表现进程的任务名称 ,如果任务需要传参就加args
注意:传参必须是集合的形式即使参数只有一个
#第二种定义个类
class Proce(Process): #用类的方法继承Process
def run(self): #run方法为任务执行的内容
print('1')
if __name__ == '__main__':
process = Proce()
如果任务需要传参,
class Proce(Process): # 用类的方法继承Process
def __init__(self,data):
super().__init__()
self.data = data
def run(self):
print(self.data)
if __name__ == '__main__':
process = Proce(1111)
Lock
:用于定义一个互斥锁
active_children
:查看当前还在运行的自进程信息
cpu_count
:查看cpu进程
使用了daemon
如果
实例化程序A.daemon = True 说明该进程守护主进程,当主进程结束了该子进程默认会跟着结束
如果不做处理deamon默认为False
在windows开启一个子进程他会把主程序自上而下重新运行一遍,所以我们在windows中必须把和子程序相关的丢入main里面中
在linux中只是会记录主程序的自上而下运行后最后的运行状态,而不会重新运行一遍,所以在linux中也不需要丢入main
综上所述还是将子进程丢入main里面运行更加合适
threading
其中常用到的几个功能
Thread
:创建线程,方法与进程相同
Lock
:互斥锁
RLock
: 也是种互斥锁Lock允许在同一线程中被多次acquire。而Lock却不允许这种情况
active_count
:存活的线程数量,返回的个数中包含主线程。
enumerate
:方法返回当前运行中的Thread对象列表
与进程相似
与进程相似
与进程相似
没有区别,都与进程在linux运行的方式一样