Python的multiprocessing
模块提供了强大的并行处理能力,以下是几个功能的详细解释:
join()
: 在multiprocessing中,join方法用于阻塞主进程直到指定的进程终止。这对于确保所有子进程在程序结束前完成其工作是很有用的。deamon()
: 在multiprocessing中,daemon属性用于设置进程是否为守护进程。守护进程是在后台运行的进程,如果没有任何活动进程,它们会在所有非守护进程结束后结束。设置为True时,进程会在所有非守护进程结束后结束。name
: 这是一个属性,允许你给进程设置一个名字。这个名字主要是为了方便调试和跟踪,它不会影响进程的行为。multiprocessing.current_process()
: 这是一个函数,返回当前进程的Process
对象。这个Process
对象代表了当前运行的进程,你可以通过这个对象获取和设置进程的各种属性,比如名字和退出状态等。multiprocessing.current_process().ident/pid
: 这两个属性分别返回当前进程的标识符和PID(进程ID)。标识符是一个系统级别的ID,用于标识创建的进程,而PID是在操作系统级别用于标识进程的ID。
1、创建进程的代码
# 进程间数据不共享
import multiprocessing
import threadingdata_list =[]
def task(arg):data_list.append(arg)print(data_list)
def run():for i in range(10):p = multiprocessing.Process (target=task,args=(i,))# 创建线程# p = threading.Thread(target=task,args=(i,))p.start()
if __name__ == '__main__':run()
运行结果:
2、通过类继承的方式创建进程
# 类继承方式创建进程
import multiprocessingclass MyProcess (multiprocessing.Process):def run(self):print('当前进程',multiprocessing.current_process())
def run():p1=MyProcess()p1.start()p2=MyProcess()p2.start()if __name__ == '__main__':run()
运行结果: