多进程

参考资料:

https://www.cnblogs.com/jiangfan95/p/11439207.html

https://www.jianshu.com/p/a5f10c152c20

 

python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了multiprocessing。

multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。

 

实现的效果:

1.父进程的结束不会影响子进程。

2.父进程等待所有子进程结束后再结束。

 

创建并开启子进程的方法

第一、直接创建

import time
import random
from multiprocessing import Process
def run(name):
    print('%s runing' %name)
    time.sleep(random.randrange(1,5))
    print('%s running end' %name)

p1=Process(target=run,args=('anne',)) #必须加,号 
p2=Process(target=run,args=('alice',))

p1.start()
p2.start()

第二、继承
import time
import random
from multiprocessing import Process


class Run(Process):
    def __init__(self,name):
        super().__init__()
        self.name=name
    def run(self):
        print('%s runing' %self.name)
        time.sleep(random.randrange(1,5))
        print('%s runing end' %self.name)

p1=Run('anne')
p2=Run('alex')
p3=Run('ab')
p4=Run('hey')
p1.start() #start会自动调用run
p2.start()
p3.start()
p4.start()

 

posted @ 2021-02-07 09:59  周周和奇奇  阅读(69)  评论(0编辑  收藏  举报