Python之路PythonThread,第四篇,進程4

來源:互聯網
上載者:User

標籤:指令   CQ   也有   編程   資源   聯絡   from   臨界區   多線程   

python3  進程4

 進程間同步互斥方法:

from multiprocessing import Lock

建立 進程鎖對象

lock = Lock()

lock.acquire()  給臨界區上鎖

lock.release() 給臨界區解鎖

說明:1,具體實現上 acquire() 為一個條件阻塞函數;

           2,當有任意一個進程先進行了acquire操作後,其他進程再企圖進行acquire操作時就會阻塞,直到lock對象被release後其他進程CIA可以進行下次

                acquire操作;

with lock: 也可以實現加鎖,解鎖

 

線程:

1,線程也可以使用電腦的多核資源,也是多任務編程方式之一;

2, 線程又稱為輕量級的進程,在並發上和進程相同,但是在建立時銷毀資源少;

說明:1,一個進程中可以包含多個線程,這個多個線程共用進程的資源;

            2, 多個線程因為共用進程的資源,所以在通訊上往往採用全域變數的方式;

            3,線程也有自己特有的資源,比如TTD指令集等;

多進程和多線程的區別和聯絡:

1,多進程和多線程都是多任務編程方式,都可以使用電腦多核;

2,進程的建立要比線程消耗更多的資源;

3,進程的空間獨立資料更安全,有專門的處理序間通訊方式進行互動;

4,一個進程包含多個線程,所以線程共用進程資源,沒有專門的通訊方式,依賴全域變數進行通訊。 往往需要使用同步互斥機制,邏輯需要考慮更多;

5,進程線程都有自己特有的資源,多個關聯任務的時候使用多線程資源消耗更少; 如果是多個無關聯任務也不適用全部都使用線程;

 

Python之路PythonThread,第四篇,進程4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.