日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python標(biāo)準(zhǔn)庫的很多初步進(jìn)程是怎樣的-創(chuàng)新互聯(lián)

Python標(biāo)準(zhǔn)庫的很多初步進(jìn)程是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十余年品質(zhì),值得信賴!

我們知道使用subprocess包來創(chuàng)建子進(jìn)程,但這個包是有兩個很大的局限性的:

1)我們總是讓subprocess運(yùn)行外部的程序,而不是運(yùn)行一個Python腳本內(nèi)部編寫的函數(shù)。

2)進(jìn)程間只通過管道進(jìn)行文本交流。以上限制了我們將subprocess包應(yīng)用到更廣泛的多進(jìn)程任務(wù)。(這樣的比較實(shí)際是不公平的,因為subprocessing本身就是設(shè)計成為一個shell,而不是一個多進(jìn)程管理包)

threading和multiprocessing

multiprocessing包是Python中的多進(jìn)程管理包。與threading.Thread類似,它可以利用multiprocessing.Process對象來創(chuàng)建一個進(jìn)程。該進(jìn)程可以運(yùn)行在Python程序內(nèi)部編寫的函數(shù)。該P(yáng)rocess對象與Thread對象的用法相同,也有start(),run(),join()的方法。此外multiprocessing包中也有Lock/Event/Semaphore/Condition類(這些對象可以像多線程那樣,通過參數(shù)傳遞給各個進(jìn)程),用以同步進(jìn)程,其用法與threading包中的同名類一致。所以,multiprocessing的很大一部份與threading使用同一套API,只不過換到了多進(jìn)程的情境。

但在使用這些共享API的時候,我們要注意以下幾點(diǎn):

在UNIX平臺上,當(dāng)某個進(jìn)程終結(jié)之后,該進(jìn)程需要被其父進(jìn)程調(diào)用wait,否則進(jìn)程成為僵尸進(jìn)程(Zombie)。所以,有必要對每個Process對象調(diào)用join()方法(實(shí)際上等同于wait)。對于多線程來說,由于只有一個進(jìn)程,所以不存在此必要性。

multiprocessing提供了threading包中沒有的IPC(比如Pipe和Queue),效率上更高。應(yīng)優(yōu)先考慮Pipe和Queue,避免使用Lock/Event/Semaphore/Condition等同步方式(因為它們占據(jù)的不是用戶進(jìn)程的資源)。

多進(jìn)程應(yīng)該避免共享資源。在多線程中,我們可以比較容易地共享資源,比如使用全局變量或者傳遞參數(shù)。在多進(jìn)程情況下,由于每個進(jìn)程有自己獨(dú)立的內(nèi)存空間,以上方法并不合適。此時我們可以通過共享內(nèi)存和Manager的方法來共享資源。但這樣做提高了程序的復(fù)雜度,并因為同步的需要而降低了程序的效率。

Process.PID中保存有PID,如果進(jìn)程還沒有start(),則PID為None。

我們可以從下面的程序中看到Thread對象和Process對象在使用上的相似性與結(jié)果上的不同。各個線程和進(jìn)程都做一件事:打印PID。但問題是,所有的任務(wù)在打印的時候都會向同一個標(biāo)準(zhǔn)輸出(stdout)輸出。這樣輸出的字符會混合在一起,無法閱讀。使用Lock同步,在一個任務(wù)輸出完成之后,再允許另一個任務(wù)輸出,可以避免多個任務(wù)同時向終端輸出。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。


分享題目:Python標(biāo)準(zhǔn)庫的很多初步進(jìn)程是怎樣的-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/djjohd.html