[英]How can I "really" understand processes and threads?
我試圖“真正”理解進程和線程——我讀過關於它們的書籍和文章,但總體情況似乎總是缺少一些東西。 當然,我可以談論細節,例如每個進程如何擁有自己的內存空間以及屬於同一進程的線程如何共享相同的內存空間等,但我想從操作系統和內存的角度尋找東西 - 例如:
所有這些與簡單的代碼示例一起會很棒。 非常感謝。
進程將代碼與執行它所需的所有資源(內存、打開的文件、共享內存)封裝在一起。 一個線程只是一個進程中的一個執行,這大致意味着一個指向線程當前指令的指針和一個調用堆棧。 一個進程至少包含一個線程,但一個進程中可能有多個線程。
fork
(幾乎所有內容都是重復的)。 生成線程既是語言問題,也是操作系統問題(存在從語言線程到操作系統線程的映射)。 C API 包含pthread_create
,它只是為其分配一個新堆棧並初始化指向要運行的某個函數地址的指令指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.