1. 程式人生 > >python併發程式設計-程序,併發

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操作