Python進程

摘至本人有道雲筆記《Python進程》

1.主要設計模塊

import os :進程的數據

        getpid()獲取當前進程id getppid()獲取父進程id

 

from multiprocessing improt Process : 創建進程

        multiprocessing模塊提供了一個Process類來代表一個進程對象

 

使用Process創建進程時,傳入兩個參數,target參數指定子進程要做的事情(函數),args參數,傳入元組。

join()方法可以等待子進程結束後再繼續往下運行,通常用於進程間的同步。

start()方法啓動線程

 

from multiprocessing improt Pool : 進程池

詳解:Pool()方法指定了可以同時創建進程的個數,如不指定參數,則是cup核心數。Pool(3),指定最多可同時創建3個進程(並行),for循環內則指定了要創建101個進程。

p.apply_async(long_time_task, args=(i,)) 異步

運行流程1.首先指定進程池的容量

2.異步創建3個進程,然後p.close()關閉進程池,p.join(),等待3個子進程結束。

循環執行 2。直至101個進程創建完畢。

2.進程間通信

Process之間肯定是需要通信的,操作系統提供了很多機制來實現進程間的通信。Python的multiprocessing模塊包裝了底層的機制,提供了QueuePipes等多種方式來交換數據。

Queue爲例,在父進程中創建兩個子進程,一個往Queue裏寫數據,一個從Queue裏讀數據:

Queue類實現了一個基本的先進先出(FIFO)容器,使用put()將元素添加到序列尾端,get()從隊列尾部移除元素。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章