Python学习笔记之多进程

一、创建多进程
import multiprocessing
import os
import time
def work(num):
    print("进程%s正在运行, pid=%s" %(multiprocessing.current_process().name,os.getpid()))
    time.sleep(5)
def main():
    jobs = []
    for i in range(1,11):
        p = multiprocessing.Process(name='进程%s'%(i),target=work,args=(i,))
        jobs.append(p)
        p.start()

    for job in  jobs:
        job.join()
if __name__ == '__main__':
    main()

        我们使用运行该程序,在程序没有运行结束之前,在shell中运行ps -aux | grep .py 命令,我们会看到十一个相同的进程产生于该脚本文件。

        

       我们前面使用过继承threading.Thread类来实现自己的多线程类,同样,在多进程里面,我们也可以通过继承multiprocessing.Process类实现多进程。

class SubProcess(multiprocessing.Process):
    def __init__(self, name, num):
        super(SubProcess, self).__init__()
        self.num = num

    def run(self):
        print('work-%s' %(self.num))
        # 获取当前进程的名称
        print("进程%s正在运行, pid=%s" %(multiprocessing.current_process().name,
                                   os.getpid()))

        我们通过自己的类的实例化对象就可以创建多进程了。

二 、进程间的通信

       我们通过队列区实现进程间的通信

import multiprocessing
import os
import random
import time

class SubProcess1(multiprocessing.Process):
    def __init__(self,que):
        super(SubProcess1,self).__in
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值