課程內(nèi)容
Python并發(fā)編程高級(jí)課程--進(jìn)程間的通信和同步
進(jìn)程間的通信:
和人類社會(huì)一樣,每個(gè)進(jìn)程在執(zhí)行過程中也需要爭(zhēng)奪更多的系統(tǒng)資源來執(zhí)行自身程序,所以他們之間也需要通信,最常見的通信就是文件,共享內(nèi)存,信號(hào),套接字等。進(jìn)程之間的通信,本質(zhì)是數(shù)據(jù)傳輸。
進(jìn)程間的同步:
如果系統(tǒng)中只存在一個(gè)進(jìn)程,或系統(tǒng)中的進(jìn)程完全孤立存在,那么無需同步。進(jìn)程同步是指多個(gè)進(jìn)程在進(jìn)行協(xié)同工作或數(shù)據(jù)共享的過程中可能會(huì)發(fā)生沖突,這時(shí)引入了一系列機(jī)制來對(duì)進(jìn)程間的操作進(jìn)行協(xié)調(diào)和制約。之所以需要同步,是因?yàn)槎鄠€(gè)進(jìn)程在并發(fā)地使用同一個(gè)共享資源,或者需要協(xié)同完成同一個(gè)任務(wù)。windows和Unix系統(tǒng)都提供了進(jìn)程的同步機(jī)制,比如互斥鎖和信號(hào)量。

- 上一篇
Python并發(fā)編程高級(jí)課程--進(jìn)程狀態(tài)和分配空間
進(jìn)程的狀態(tài):當(dāng)我們打開一段程序運(yùn)行的時(shí)候,就需要占用CPU,如果其他程序占用。那就需要等待系統(tǒng)為其分配處理器,此時(shí)進(jìn)程的狀態(tài)就成為就緒態(tài),一旦系統(tǒng)噴賠了處理器資源來運(yùn)行此程序,那么進(jìn)程的狀態(tài)就成為運(yùn)行態(tài),如果在運(yùn)行過程中,需要和人進(jìn)行互動(dòng),比如需要用戶鍵盤輸
- 下一篇
Python并發(fā)編程高級(jí)課程--線程
什么是線程?上節(jié)課中,我們降到了進(jìn)程,知道了每創(chuàng)建一個(gè)進(jìn)程,都需要系統(tǒng)分配CPU、內(nèi)存、磁盤等資源。而系統(tǒng)中不止一個(gè)進(jìn)程。在進(jìn)程和進(jìn)程之間切換的時(shí)候,系統(tǒng)需要記錄之前進(jìn)程的執(zhí)行狀態(tài)信息,以便下次執(zhí)行時(shí)調(diào)用。由于在早期的電腦中,進(jìn)程的創(chuàng)建、切換、銷毀存在較大的