欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用multiprocessing創(chuàng)建進程的方法

 更新時間:2015年06月04日 09:51:51   作者:raygtr  
這篇文章主要介紹了Python使用multiprocessing創(chuàng)建進程的方法,實例分析了multiprocessing模塊操作進程的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了Python使用multiprocessing創(chuàng)建進程的方法。分享給大家供大家參考。具體分析如下:

進程可以通過調(diào)用multiprocessing的Process進行創(chuàng)建,下面代碼創(chuàng)建兩個進程。

[root@localhost ~]# cat twoproces.py 
#!/usr/bin/env python
from multiprocessing import Process
import os
def output():
 print "My pid is :%d\n" % os.getpid()
 print "My parent is:%d\n" % os.getppid()
def main():
 p=Process(target=output) 
 p.start()
 print "I am parent %d\n" % os.getpid()
if __name__=="__main__":
 main()

運行結(jié)果如下:

[root@localhost ~]# ./twoproces.py 
I am parent 7656
My pid is :7660
My parent is:7656

以下程序結(jié)果的mypid值將在兩個進程中固定不變.

[root@localhost ~]# cat badprocessID.py 
#!/usr/bin/env python
from multiprocessing import Process
import os
def output(mypid):
 print "I am child %d ID :%d\n" % (os.getpid(),mypid)
def main():
 mypid=os.getpid()
 p=Process(target=output,args=(mypid,)) 
 print "I am parent %d\n" % os.getpid()
 p.start()
if __name__=="__main__":
 main()

有與子進程并沒有重設(shè)mypid,所以運行過程中mypid并沒有任何改變。

下面代碼將創(chuàng)建一個由子進程創(chuàng)建子進程的進程鏈。

[root@localhost ~]# cat simplechina.py 
#!/usr/bin/env python
import os
from multiprocessing import Process
def output(howmany,childpid):
 info = (howmany,os.getpid(),os.getppid(),childpid)
 print "i:%d process ID:%d parent ID%d child ID %d\n" % info
def chain(howmany):
 howmany = howmany-1
 if howmany > 0:
 p = Process(target=chain,args=(howmany,)) 
 p.start()
 output(howmany,p.pid)
def main():
 childpid = 0
 howmany=6
 p = Process(target=chain,args=(howmany,))
 p.start()
if __name__=="__main__":
 main()

有與主進程利用Process創(chuàng)建子進程,而子進程又再創(chuàng)建子進程(也就是A->B->C-D),如此類推,知道howmany小于0結(jié)束。運行1結(jié)果如下:

[root@localhost ~]# ./simplechina.py 
i:5 process ID:13581 parent ID13580 child ID 13582
i:4 process ID:13582 parent ID13581 child ID 13583
i:3 process ID:13583 parent ID13582 child ID 13584
i:2 process ID:13584 parent ID13583 child ID 13585
i:1 process ID:13585 parent ID13584 child ID 13586

接下來如何創(chuàng)建一個進程扇,也就是:
            A
          /   \
         B     C
建立simplefan.py文件,代碼如下:

[root@localhost ~]# cat simplefan.py 
#!/usr/bin/env python
import os
from multiprocessing import Process
def output(howmany,childpid):
 info = (howmany,os.getpid(),os.getppid(),childpid)
 print "i:%d process ID:%d parent ID%d child ID %d\n" % info
def fan(i):
 output(i,os.getpid())
def main():
 pList=[]
 for i in range(6):
 p = Process(target=fan,args=(i,))
 pList.append(p)
 for p in pList:
 p.start()
 for p in pList:
 p.join()
if __name__=="__main__":
 main()

運行結(jié)果如下:

[root@localhost ~]# ./simplefan.py 
i:0 process ID:13594 parent ID13593 child ID 13594
i:2 process ID:13596 parent ID13593 child ID 13596
i:3 process ID:13597 parent ID13593 child ID 13597
i:1 process ID:13595 parent ID13593 child ID 13595
i:4 process ID:13598 parent ID13593 child ID 13598
i:5 process ID:13599 parent ID13593 child ID 13599

除了進程ID為13593的進程外,其它進程的父進程都是13593
父進程利用join方法等等所有的子進程結(jié)束。

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python使用lambda表達式對字典排序操作示例

    Python使用lambda表達式對字典排序操作示例

    這篇文章主要介紹了Python使用lambda表達式對字典排序操作,結(jié)合實例形式分析了lambda表達式實現(xiàn)字典按鍵排序、按值排序、多條件排序相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • 超實用的 10 段 Python 案例

    超實用的 10 段 Python 案例

    Python是目前最流行的語言之一,它在數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、web開發(fā)、腳本編寫、自動化方面被許多人廣泛使用。它的簡單和易用性造就了它如此流行的原因。今天這篇文章就給大家分享 10 段超級有用的 Python 案例,需要的朋友可以參考一下
    2021-09-09
  • Python爬蟲之Selenium警告框(彈窗)處理

    Python爬蟲之Selenium警告框(彈窗)處理

    這篇文章主要介紹了Python爬蟲之Selenium警告框(彈窗)處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python selenium頁面加載慢超時的解決方案

    Python selenium頁面加載慢超時的解決方案

    這篇文章主要介紹了Python selenium頁面加載慢超時的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python真題案例之二分法查找詳解

    Python真題案例之二分法查找詳解

    這篇文章主要介紹了python實操案例練習(xí),本文給大家分享的案例中主要講解了二分法查找,需要的小伙伴可以參考一下
    2022-03-03
  • Python之Pygame的Event事件模塊

    Python之Pygame的Event事件模塊

    這篇文章主要介紹了Pygame的Event事件模塊,事件(Event)是 Pygame 的重要模塊之一,它是構(gòu)建整個游戲程序的核心,Pygame 定義了一個專門用來處理事件的結(jié)構(gòu),即事件隊列,本文有一定參考價值,感興趣的同學(xué)可以閱讀參考
    2023-04-04
  • Pandas把dataframe或series轉(zhuǎn)換成list的方法

    Pandas把dataframe或series轉(zhuǎn)換成list的方法

    這篇文章主要介紹了Pandas把dataframe或series轉(zhuǎn)換成list的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python中import warnings的具體作用

    python中import warnings的具體作用

    在Python開發(fā)中,我們經(jīng)常會遇到一些警告信息,本文主要介紹了python中import warnings的具體作用,以提醒用戶潛在的問題,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 在Pytorch中計算自己模型的FLOPs方式

    在Pytorch中計算自己模型的FLOPs方式

    今天小編就為大家分享一篇在Pytorch中計算自己模型的FLOPs方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 在centos7中分布式部署pyspider

    在centos7中分布式部署pyspider

    PySpider:一個國人編寫的強大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強大的WebUI。采用Python語言編寫,分布式架構(gòu),支持多種數(shù)據(jù)庫后端,強大的WebUI支持腳本編輯器,任務(wù)監(jiān)視器,項目管理器以及結(jié)果查看器。
    2017-05-05

最新評論