• python多进程


    用Python处理一些问题的时候,会发现运行的速度很慢,比如说读取多张图片数据,要比C++慢很多,但是如果可以使用多进程,那么速度上就会有提高。

    本文部分内容来自于(https://www.cnblogs.com/kaituorensheng/p/4445418.html)

    (在Windows上面使用多进程出现了一点问题,子进程里面的程序没有执行)在Linux系统之下,就没有出现这样的问题。

    1、启动多进程:

    import multiprocessing
    
    def worker(..):
        ...
    
    # 一个进程
    p = multiprocessing.Process(target = worker,args=(函数参数,))

    上面的worker是定义的函数,传入到args中的是函数的参数,注意最后加一个逗号是因为传入的tuple的数据类型。

    2、将进程定义为类

    class process_class(multiprocessing.Process):
        def __init__(self, ..):
            multiprocessing.Process.__init__(self)
                
        def run(self):
            ...
    
    p = process_class(..)
    p.start()

    上面p调用start()的时候,自动调用run()。

    3、daemon

    如果设置了

    p.daemon = True

    那么主进程结束之后,子进程就会随之结束。

    4、共享资源lock

    见前面的博客,多个进程访问共享资源的时候,Lock可以用来避免访问的冲突。

    5、Queue

    Queue是队列,有两个关键的method: put和get。

    put: 插入数据到队列中, put有两个可选的参数,blocked和timeout。如果blocked设置为True(默认值),并且timeout为正值,当Queue队列已经满的时候,会过timeout之后才会抛出Queue.Full异常。否则,则立即抛出Queue.Full异常。

    get: 队列读取并且删除一个元素。同样也有两个可选参数,blocked和timeout,类似上面。

  • 相关阅读:
    博客园的商业模式
    读书单
    VC++学习笔记
    技术话题
    vc+学习遇到的问题
    常见的Java问题排查方法
    MSDN Library for vs 2010 下载和安装
    WT19i刷机过程
    随记
    WT19i的刷机
  • 原文地址:https://www.cnblogs.com/yanxingang/p/10901061.html
Copyright © 2020-2023  润新知