1. 程序: 通俗理解乙個執行起來的程式或者軟體叫做程序
1.1 每次啟動乙個程序都需要向作業系統索要執行資源,讓程序中的執行緒去執行對應的**,程序是作業系統分配資源的基本單位
1.2 預設情況下乙個程序只有乙個執行緒,執行緒是依附在程序裡面的, 沒有程序就沒有執行緒, 當在程序裡面還可以建立多個執行緒
1.3 如何理解程序: 把程序想成現實生活中的公司,公司可以給員工提供辦公資源(辦公桌椅,辦公電腦等資源), 真正幹活的是員工,所以員工可以想成執行緒,公司就是程序
2. 程序和執行緒的對比
2.1 程序是作業系統資源分配的基本單位,每啟動乙個程序都需要向作業系統索要執行資源,預設乙個程序只有乙個執行緒,執行緒是依附在程序裡面的
2.2 執行緒是cpu排程的基本單位, 通過執行緒去執行程序中**, 執行緒是執行**的分支
2.3 多程序開發比單程序多執行緒開發穩定性要強,但是多程序開發比多執行緒開發資源開銷要大
2.4 多程序開發某個程序死了不會影響其它程序的執行,但是多執行緒開發該程序死了那麼這些執行緒都要進行銷毀
併發: 任務數大於cpu的核數,多個任務輪流執行,由於cpu切換速度特別快,看起來像是一起執行,其實是假象。
並行: 任務數小於或者等於cpu的核數,那麼多個任務是真正意義一起執行。
3. 程序、執行緒、協程
1.1 先有程序,然後程序可以建立執行緒,執行緒是依附在程序裡面的, 執行緒裡面可以包含多個協程
1.2 程序之間不共享全域性變數,執行緒之間共享全域性變數,但是要注意資源競爭的問題
1.3 多程序開發比單程序多執行緒開發穩定性要強,但是多程序開發比多執行緒開發資源開銷要大
1.4 多執行緒開發執行緒之間執行是無序的,協程之間執行按照一定順序交替執行
1.5 協程以後主要用在網路爬蟲和網路請求,開闢乙個協程大概需要5k空間,開闢乙個執行緒需要512k空間, 開闢乙個程序占用資源最多
原文:
執行緒丶程序丶協程(三)協程
協程,又稱微執行緒,纖程。英文名coroutine。協程是python個中另外一種實現多工的方式,只不過比執行緒更小占用更小執行單元 理解為需要的資源 為啥說它是乙個執行單元,因為它自帶cpu上下文。這樣只要在合適的時機,我們可以把乙個協程 切換到另乙個協程。只要這個過程中儲存或恢復 cpu上下文那...
程序執行緒協程的區別
程序池 乙個程序占用乙個cpu,占用一定的記憶體空間。一般cpu配置都是4核,如果開的程序太多,其他的程式就得等著。什麼情況家使用多程序?cpu是用來計算的。所以在cpu密集運算的情況下,才使用多程序。具體要開幾個程序,根據機器的實際配置和實際生產情況而定。執行緒池 程序裡面才有執行緒,乙個程序裡面...
python 執行緒程序協程(三)
1.在python3.4之前,協程是通過生成器 yield 實現的 def count down n while n 0 yield n n 1 if name main rest count down 5 print next rest print next rest print next res...