1. 程式人生 > >併發程式設計(2)-程序、併發和並行講解

併發程式設計(2)-程序、併發和並行講解

概要:

  1. 程序

  2. 併發和並行

  3. 同步\非同步\阻塞\非阻塞

  4. 程序的建立、結束與併發的實現

一.程序講解

  程序(Process)是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令、資料及其組織形式的描述,程序是程式的實體。我們自己在python檔案中寫了一些程式碼,這叫做程式,執行這個python檔案的時候,這叫做程序。 

二.併發和並行

  通過程序之間的排程,也就是程序之間的切換,我們使用者感知到的好像是兩個視訊檔案同時在播放,或者音樂和遊戲同時在進行,無論是並行還是併發,在使用者看來都是'同時'執行的,不管是程序還是執行緒,都只是一個任務而已,真是幹活的是cpu,cpu來做這些任務,而一個cpu同一時刻只能執行一個任務.

1.併發:是偽並行,即看起來是同時執行。單個cpu+多道技術就可以實現併發(並行也屬於併發),提高了程式的工作效率.

它完成了兩項工作:

  a:程序之間的切換  (cpu只會運算,遇到I/O,程式進行切換的時候是作業系統控制的)

  b:保護現場,保留你程序執行的狀態

2.並行:同時執行多個任務,只有具備多個cpu才能實現並行.

三.同步\非同步\阻塞\非阻塞

四.程序的建立、結束與併發的實現

詳情:https://mp.weixin.qq.com/s/r_SrW3KYhmEb7x5OtlZt_w