(2018-04-09.Python從Zero到One)二、python高級編程__2.1.7進程的創(chuàng)建-Process子類

上一篇文章為:→2.1.6multiprocessing

進程的創(chuàng)建-Process子類

創(chuàng)建新的進程還能夠使用類的方式,可以自定義一個類,繼承Process類,每次實例化這個類的時候,就等同于實例化一個進程對象,請看下面的實例:

from multiprocessing import Process
import time
import os

#繼承Process類
class Process_Class(Process):
    #因為Process類本身也有__init__方法,這個子類相當于重寫了這個方法,
    #但這樣就會帶來一個問題,我們并沒有完全的初始化一個Process類,所以就不能使用從這個類繼承的一些方法和屬性,
    #最好的方法就是將繼承類本身傳遞給Process.__init__方法,完成這些初始化操作
    def __init__(self,interval):
        Process.__init__(self)
        self.interval = interval

    #重寫了Process類的run()方法
    def run(self):
        print("子進程(%s) 開始執(zhí)行,父進程為(%s)"%(os.getpid(),os.getppid()))
        t_start = time.time()
        time.sleep(self.interval)
        t_stop = time.time()
        print("(%s)執(zhí)行結(jié)束,耗時%0.2f秒"%(os.getpid(),t_stop-t_start))

if __name__=="__main__":
    t_start = time.time()
    print("當前程序進程(%s)"%os.getpid())        
    p1 = Process_Class(2)
    #對一個不包含target屬性的Process類執(zhí)行start()方法,就會運行這個類中的run()方法,所以這里會執(zhí)行p1.run()
    p1.start()
    p1.join()
    t_stop = time.time()
    print("(%s)執(zhí)行結(jié)束,耗時%0.2f"%(os.getpid(),t_stop-t_start))

下一篇文章為:→2.1.8進程池Pool
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,347評論 25 708
  • 1.進程 1.1多線程的引入 現(xiàn)實生活中 有很多的場景中的事情是同時進行的,比如開車的時候手和腳共同來駕駛汽車,再...
    TENG書閱讀 944評論 0 0
  • 【正面溝通??和諧親子】第四期 張紅云 堅持分享第141天 周日在雙鶴老師神奇的歐卡牌游戲的引領(lǐng)下,再次解...
    紅云_楊柳清風閱讀 467評論 0 1
  • https://dribbble.com/alexsketch 設計師 https://dribbble.com...
    靖蘭亭閱讀 843評論 0 50

友情鏈接更多精彩內(nèi)容