zoukankan      html  css  js  c++  java
  • Python实现多进程

    Python可以实现多线程,但是因为Global Interpreter Lock (GIL),Python的多线程只能使用一个CPU内核,即一个时间只有一个线程在运行,多线程只是不同线程之间的切换,对多核CPU来说,就是巨大的浪费。如4核CPU,实际上只利用了一个核,CPU利用率只有25%。要充分利用多核CPU,可以实现Python的多进程。

    首先,import相关的包:

    from multiprocessing import Process, Manager
    import multiprocessing

    生成进程实例,并启动进程:

    p = Process(target = Function_Name, args = (Function_Args_List))
    p.start()

    其中Function_Name是进程运行的函数名称,Function_Args_List是函数的参数列表,需要注意的是,以上代码必须写在if __name__ == '__main__':下面,否则会报错。

    进程运行完了再执行父进程后面的代码,可以用join()来实现:

    p.join()

    如果是多个进程,一定要让多个进程都start()以后再join(),否则就成了上一个进程运行完了再开始下一个进程。

    线程可以数据共享,进程是不能数据共享的,要实现数据共享,可以用:

    m_list = multiprocessing.Manager().list(list)

    以上代码在进程间共享了列表list。

  • 相关阅读:
    singleton模式 在软件开发中的运用
    State Pattern
    闲话闲说——关于异常
    程序人生
    Event
    SerialPort实现modem的来电显示
    利用枚举进行状态的设计
    职责链模式的运用
    我对当前项目的一些看法
    SHAREPOINT 2007 网站模板(解决方案)安装和卸载
  • 原文地址:https://www.cnblogs.com/mstk/p/9248286.html
Copyright © 2011-2022 走看看