併發程式設計(2)-程序、併發和並行講解
阿新 • • 發佈:2018-12-16
概要:
-
程序
-
併發和並行
-
同步\非同步\阻塞\非阻塞
-
程序的建立、結束與併發的實現
一.程序講解
程序(Process)是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令、資料及其組織形式的描述,程序是程式的實體。我們自己在python檔案中寫了一些程式碼,這叫做程式,執行這個python檔案的時候,這叫做程序。
二.併發和並行
通過程序之間的排程,也就是程序之間的切換,我們使用者感知到的好像是兩個視訊檔案同時在播放,或者音樂和遊戲同時在進行,無論是並行還是併發,在使用者看來都是'同時'執行的,不管是程序還是執行緒,都只是一個任務而已,真是幹活的是cpu,cpu來做這些任務,而一個cpu同一時刻只能執行一個任務.
1.併發:是偽並行,即看起來是同時執行。單個cpu+多道技術就可以實現併發(並行也屬於併發),提高了程式的工作效率.
它完成了兩項工作:
a:程序之間的切換 (cpu只會運算,遇到I/O,程式進行切換的時候是作業系統控制的)
b:保護現場,保留你程序執行的狀態
2.並行:同時執行多個任務,只有具備多個cpu才能實現並行.
三.同步\非同步\阻塞\非阻塞
四.程序的建立、結束與併發的實現
詳情:https://mp.weixin.qq.com/s/r_SrW3KYhmEb7x5OtlZt_w