進程,線程,協程


維基百科解釋:

1、進程:

    進程英語:process),是計算機中已運行程序的實體。進程為曾經是分時系統的基本運作單位。在面向進程設計的系統(如早期的UNIXLinux 2.4及更早的版本)中,進程是程序的基本執行實體;在面向線程設計的系統(如當代多數操作系統、Linux 2.6及更新的版本)中,進程本身不是基本運行單位,而是線程的容器。程序本身只是指令、數據及其組織形式的描述,進程才是程序(那些指令和數據)的真正運行實例。若干進程有可能與同一個程序相關系,且每個進程皆可以同步(循序)或異步(平行)的方式獨立運行。現代計算機系統可在同一段時間內以進程的形式將多個程序加載到存儲器中,並借由時間共享(或稱時分復用),以在一個處理器上表現出同時(平行性)運行的感覺。同樣的,使用多線程技術(多線程即每一個線程都代表一個進程內的一個獨立執行上下文)的操作系統或計算機架構,同樣程序的平行線程,可在多CPU主機或網絡上真正同時運行(在不同的CPU上)。

2、線程:

    線程英語:thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以並發多個線程,每條線程並行執行不同的任務。在Unix System VSunOS中也被稱為輕量進程(lightweight processes),但輕量進程更多指內核線程(kernel thread),而把用戶線程(user thread)稱為線程。

3、協程:

    子例程一樣,協程也是一種程序組件。相對子例程而言,協程更為一般和靈活,但在實踐中使用沒有子例程那樣廣泛。協程源自SimulaModula-2語言,但也有其他語言支持。協程更適合於用來實現彼此熟悉的程序組件,如合作式多任務迭代器無限列表管道

自己的理解:


1:進程,線程是操作系統級的。協程是語言級的。

2:進程是空間概念,容器。線程,協程是時間概念。

3:每個進程至少包含一個線程。因為線程才是真正的運行單位。

4:進程其實就是操作系統給每個程序分配的虛擬內存空間。線程就是eip,操作系統調度,改變。協程是語言級別改變eip。



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



進程線程協程 進程,線程,協程 進程、線程與協程 線程、進程與協程2 關於進程、線程、協程 進程 線程 協程 線程 & 進程 & 協程 進程協程線程 進程、線程與協程 進程協程線程
 
粤ICP备14056181号  © 2014-2020 ITdaan.com