您好,登錄后才能下訂單哦!
這篇文章主要介紹了操作系統中什么是進程、線程、協程,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
進程: 本質上是一個獨立執行的程序,進程是操作系統進行資源分配和調度的基本概念,操作系統進行資源分配和調度的一個獨立單位。
線程: 是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一個進程中可以并發多個線程,每條線程執行不同的任務,切換受系統控制。
協程: 又稱為微線程,是一種用戶態的輕量級線程,協程不像線程和進程需要進行系統內核上的上下文切換,協程的上下文切換是由用戶自己決定的,有自己的上下文,所以說是輕量級的線程,也稱之為用戶級別的線程就叫協程,一個線程可以多個協程,線程進程都是同步機制,而協程則是異步Java的原生語法中并沒有實現協程,目前python、Lua和GO等語言支持。
關系:一個進程可以有多個線程,它允許計算機同時運行兩個或多個程序。線程是進程的最小執行單位,CPU
的調度切換的是進程和線程,進程和線程多了之后調度會消耗大量的CPU,CPU上真正運行的是線程,線程可
以對應多個協程。
優點:
非常快速的上下文切換,不用系統內核的上下文切換,減小開銷。
單線程即可實現高并發,單核CPU可以支持上萬的協程。
由于只有一個線程,也不存在同時寫變量的沖突,在協程中控制共享資源不需要加鎖。
缺點:
協程無法利用多核資源,本質也是個單線程。
協程需要和進程配合才能運行在多CPU上。
目前java沒成熟的第三方庫,存在風險。
調試debug存在難度,不利于發現問題。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“操作系統中什么是進程、線程、協程”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。