Go程序 執行緒 協程 單元 空間資源 切換 共享

2021-09-26 22:53:07 字數 604 閱讀 3176

程序process 執行緒 thread   協程goroutine

作業系統分為操作與資源兩部分,操作就是方法,資源就是硬碟資源,合稱為作業系統。

因為是乙個系統,任務很多很繁雜,所以根據軟體不同進行分解,乙個軟體就是一小塊,就是程序。

比喻:程序就是應用程式的啟動例項,乙個軟體乙個程序,

例如我們執行乙個遊戲,開啟乙個軟體,就是開啟了乙個程序。

啟動乙個軟體會把此程序**注入到cpu的暫存器中,cpu就可以操作該軟體的資源

不共享資源

執行緒從屬於程序, 是程式執行流的最小單元 ,是被cpu排程和分派的基本單位

沒有自己的資源,只擁有自己的棧空間,乙個執行緒需要512k空間

可以與同程序的其他執行緒共享資源。

協程是比執行緒更加輕量級的存在。乙個執行緒可擁有多個協程,全是由程式就是我們自己所控制

開闢乙個協程大概需要5k空間

切換成本小

程序 執行緒 協程

多程序多執行緒的最終目地都是為了加快任務處理的時間,但是受限於cpu核數 只有多核才能實現並行,任務耗時 單核任務耗時 cpu核數 那麼在單核上執行多程序多執行緒是不是沒有用了,加快不了處理的速度了?答案肯定是不是的,不然這個東西設計出來太雞肋了,那它們加快處理的原理是什麼呢?乙個程序耗時 b程序耗...

程序 執行緒 協程

程序是系統資源分配的最小單位,系統由乙個個程序 程式 組成。一般情況下,包括文字區域 text region 資料區域 data region 和堆疊 stack region 檔案描述符表 程序每次開啟乙個檔案,系統就會在該程序的使用者檔案描述符表中分配乙個相應的表項,表項的索引返回給該程序,用於...

執行緒 程序 協程

執行緒是作業系統中進行運算排程的最小單位。執行緒被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中乙個單一順序的控制流,乙個程序可以併發多個執行緒,每條執行緒並行執行不同的任務。乙個執行緒是乙個execution context 執行上下文 即乙個cpu執行時所需要的一串指令。每個獨立...