天天看點

作業、程式、程序、線程、協程

概念

作業:作業相當于一個程式,相當于整個程式中的一段段可以并發執行的代碼。

程式:描述計算機所要完成的具有獨立功能的,并在時間上按嚴格次序前後相繼的計算機操作序列集合,是一個靜态的概念,它展現了程式設計人員要求計算機完成相應功能時所應采取的順序步驟。

程序:用程式作為描述其執行過程以及共享資源的基本機關是不合适的。需要有一個能描述程式執行過程且能用來共享資源的基本機關,這個基本機關稱為程序。在系統中能夠獨立運作并作為資源配置設定的獨立機關,由一組機器指令、資料和堆棧等組成,是一個能夠獨立運作的活動實體。

線程:線程是程序的一部分,線程也是CPU排程的一個基本機關。

線程由線程辨別符程式計數器,一組寄存器的值和堆棧組成,除了上述在運作中必不可少的資源外,線程基本上不擁有系統的資源,但它可以和屬于同一個程序的其他線程共享程序所擁有的全部資源,如程序的代碼段,資料段,已打開的檔案,定時器和信号量機構等。

協程:單程序的條件下實作并發作業系統無法感覺到單線程中的協程之間的切換因為作業系統中并沒有協程的概念,協程是程式員用代碼實作的一種并發實作協程的必備條件基于多道技術,我們知道了線程間的切換需要實作空間和時間上的複用,即:儲存狀态+切換當程間遇到阻塞時進行切換才是意義的,如果遇到計算時還切換,隻會徒增切換時間。

繼續閱讀