1. 程式人生 > 程式設計 >Python程序Multiprocessing模組原理解析

Python程序Multiprocessing模組原理解析

先看看下面的幾個方法:

  • star() 方法啟動程序,
  • join() 方法實現程序間的同步,等待所有程序退出。
  • close() 用來阻止多餘的程序湧入程序池 Pool 造成程序阻塞。

引數:

target 是函式名字,需要呼叫的函式

args 函式需要的引數,以 tuple 的形式傳入

用法:

multiprocessing.Process(group=None,target=None,name=None,args=(),kwargs={},*,daemon=None)

寫一個的例子:

from multiprocessing import Pool
import os,time


def pr(str):
  print("The " + str + " is %s" %(os.getpid()))
  time.sleep(1)
  print("The " + str + " is close")


if __name__ == "__main__":

  print('-------------------------------')
  print("the current pid: "+ str(os.getpid()))
  # 預設為自己電腦的核數
  p = Pool(2)
  for i in range(5):
    p.apply_async(pr,args=('xdxd',))
  p.close()
  p.join()
  print("----------close-----------------")

通過結果可以看出,是2個程序同時啟動,同時啟動的程序數與pool中設定的數量和自己電腦的核數有關

結果:

-------------------------------
the current pid: 9562
The xdxd is 9563
The xdxd is 9564
The xdxd is close
The xdxd is close
The xdxd is 9563
The xdxd is 9564
The xdxd is close
The xdxd is close
The xdxd is 9563
The xdxd is close
----------close-----------------

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。