python使用进程实现多任务

想要实现多任务,python提供了一个multiprocessing库下的 Process类

 Process类代表一个进程对象


 创建一个 Process 对象:
 Process([group [, target= [, args=, [, kw
 group:分组,实际上不使用
 target:表示调用的对象,可以传入函数名称
 args:表示给调用对象以元组的形式提供参数。比如target的函数为a,a函数有两个形参,
 那么args就为  args=(x,y)
 kwargs:表示调用对象的字典

 name:别名,相当于给这个进程取一个名字

from multiprocessing import Process
import os
import time


def run(str):
    while True:
        print('1--%s     %s' % (os.getpid(), os.getppid()))
        print('我是run内容')
        time.sleep(2)

if __name__ == '__main__':
    print('2--%s' % os.getpid())
    # 创建子进程
    p = Process(target=run, args=('good',))
    # 启动程序
    p.start()

    while True:
        print('我是main的内容')
        time.sleep(1)

进程池的简单描述:

from multiprocessing import Pool
import os
import time


def run(i):
    print('子进程 %d 启动, %s' % (i, os.getpid()))
    t1 = time.time()
    time.sleep(i)
    t2 = time.time()
    print('子进程 %d 结束, %s  %.2f   ' % (i, os.getpid()))

if __name__ == '__main__':
    print('父进程开始')
    # 创建多个进程 进程池
    # 创建进程池
    # Pool(2)里面的参数表示可以同时执行的进程数量
    p = Pool(3)
    # 将函数作为子进程添加到进程池中
    # p.apply_async()
    for i in range(3):
        # 将函数作为子进程添加到进程池中
        p.apply_async(func=run, args=(i+1,))
    # 第一个子进程   1       2      3
    # 在调用join()之前必须先调用close(),调用close()之后就不能再添加新的进程
    p.close()
    # 进程池调用join(),父进程会等待进程池中所有的子进程结束后,再继续执行父进程
    p.join()

    print('父进程结束')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值