更新時間:2021-10-09 10:34:45 來源:動力節點 瀏覽1159次
每個進程提供執行程序所需的資源。進程具有虛擬地址空間、可執行代碼、系統對象的開放句柄、安全上下文、唯一進程標識符、環境變量、優先級類、最小和最大工作集大小以及至少一個執行線程。每個進程都以單個線程啟動,通常稱為主線程,但可以從其任何線程創建其他線程。
一個線程是可以調度執行過程中的實體。進程的所有線程共享其虛擬地址空間和系統資源。此外,每個線程都維護異常處理程序、調度優先級、線程本地存儲、唯一的線程標識符以及系統將用來保存線程上下文直到被調度的一組結構。的線程上下文包括線程的一組的機器寄存器,內核棧,線程環境塊,并在該線程的進程的地址空間中的用戶棧。線程也可以有自己的安全上下文,可用于模擬客戶端。
Microsoft Windows 支持搶占式多任務處理,這會產生來自多個進程的多個線程同時執行的效果。在多處理器計算機上,系統可以同時執行與計算機上的處理器一樣多的線程。
甲作業對象允許的處理組作為一個單元來管理。作業對象是可命名的、可保護的、可共享的對象,它們控制與其關聯的進程的屬性。對作業對象執行的操作會影響與作業對象關聯的所有進程。
應用程序可以使用線程池來減少應用程序線程的數量并提供對工作線程的管理。應用程序可以對工作項進行排隊,將工作與可等待句柄相關聯,根據計時器自動排隊,并與 I/O 綁定。
用戶模式調度(UMS) 是一種輕量級機制,應用程序可以使用它來調度自己的線程。應用程序可以在用戶模式下在 UMS 線程之間切換,而無需系統調度程序,如果 UMS 線程在內核中阻塞,則可以重新獲得對處理器的控制。每個 UMS 線程都有自己的線程上下文,而不是共享單個線程的線程上下文。在用戶模式下在線程之間切換的能力使 UMS 比需要很少系統調用的短期工作項目的線程池更有效。
甲纖維是執行的單元,其必須由應用程序進行手動調度。Fiber 在調度它們的線程的上下文中運行。每個線程可以調度多個纖程。一般而言,與精心設計的多線程應用程序相比,纖程沒有優勢。但是,使用纖程可以更輕松地移植旨在調度自己線程的應用程序。
如果大家想了解更多相關知識,可以關注一下動力節的Java多線程編程教程,里面有更多的知識可以學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習