python併發程式設計-程序,併發
1.程序是一個正在執行的程式,或者說是程式執行的過程,程序是個抽象概念
程序起源於作業系統,是作業系統最核心的概念,作業系統所有其他的概念都是圍繞程序展開
研究程序最底層就是在研究作業系統底層程式碼
2.序列 -程序
一個任務完完整整的執行完畢後,在執行下一個任務
3.併發-程序
看起來多個任務是同時執行即可,單核也可以實現併發
4.-並行-程序
真正意義上多個任務的同時執行,只要多核才實現並行
5.cpu的功能:
cpu是用來做計算的,cpu無法執行io操作,一旦遇到io操作,應該讓cpu去執行別的任務
6.多道技術原理:
多道技術中的多道指的是多個程式,多道技術的實現是為了解決多個程式競爭或者說共享同一個資源(比如cpu)的有序排程問題,
解決方式即多路複用,多路複用分為時間上的複用和空間上的複用。
1.空間上的複用=》將記憶體分為幾個部分,每個部分放入一個程式,這種同一時間記憶體中就有多個程序程式
2.時間上的複用-》當一個程式執行io操作時候,另一個程式可以使用cpu。如果記憶體中可以存放多個程序程式,那麼cpu的利用率可以接近100%
(作業系統採用了多道技術後,可以控制程序的切換,或者說程序之間去爭搶cpu的執行許可權。這種切換不僅會在一個程序遇到io時進行,一個程序佔用cpu時間過長也會切換,或者說被作業系統奪走cpu的執行許可權)
強調:遇到io切,佔用cpu時間過長也切,核心在於切之前將程序的狀態儲存下來,這樣就可以保證下次切回來時,能基於上次切走的位置繼續執行!
7. 兩種cpu切換控制:
1,cpu遇到io操作時切換:可以提升效率
2.一個程序佔用cpu時間過長也會被切走:併發效果不得已而為之,這樣反而會降低程式的執行效率
總結:
寫程式最核心的提升效率的方式:就是儘可能減少io操作