进程

一、简介

1、multiprocessing模块介绍

#python中的多线程无法利用多核优势,
    如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。
    multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。

  multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。

 

2、Process类介绍

#参数介绍
Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,表示一个子进程中的任务(尚未启动)
group参数未使用,值始终为None
 
target表示调用对象,即子进程要执行的任务

args表示调用对象的位置参数元组,args=(1,2,'pdun',)

kwargs表示调用对象的字典,kwargs={'name':'pdun','age':18}

name为子进程的名称

 

3、开启进程的两种方式

from multiprocessing import Process
import time

def run():
    print("start")
    time.sleep(2)
    print("stop")

if __name__ == '__main__':
    s = Process(target=run)
    s.start()                  #------>-------------->#向操作系统发送开启子进程的信号
    time.sleep(3)
    print("主进程")
方式一 直接实例化Process类,通过target参数来指定要执行的函数
from multiprocessing import Process
import time

class MyProcess(Process):
    def __init__(self,name,age):
        super().__init__()
        self.name = name
        self.age =age

    def run(self):
        print("name is %s" %self.name)
        time.sleep(2)
        print("age is %s" %self.age)

if __name__ == '__main__':
    s = MyProcess("pdun",1)
    s.start()
    print("主进程")
方式二 创建类 继承Process,覆盖run方法,将要执行的任务放到run中

 

posted @ 2019-08-29 12:13  pdun  阅读(227)  评论(0编辑  收藏  举报