更新時間:2021-07-09 16:03:06 來源:動力節點 瀏覽1597次
多線程是一種同時執行多個線程的技術,它不允許進程或操作系統生成計算機中運行的程序的多個副本,而是在不創建程序多個副本的情況下,同時管理多個用戶或同一用戶的多個請求。
線程是輕量級進程,是處理的最小單元,同時運行多個線程稱為多線程。因此,基本上,這是一種由多個處理器使用單個代碼集的方法。
1.為了理解多線程,需要理解兩個術語。
(1)線程:線程是進程的獨立或基本單元。
(2)進程:正在執行的程序稱為進程,一個進程中存在多個線程。
2.多線程中的執行是并發的和并行的。
(1)并發執行:如果處理器可以在單個處理器上的多線程進程中的線程之間切換執行資源,則可以說它是并發執行。
(2)并行執行:當進程中的每個線程可以在同一多線程進程中同時在單獨的處理器上運行時,則被稱為并行執行。
用戶級線程:它們由用戶創建和管理,它們用于應用程序級別,操作系統不參與。一個很好的例子是當我們在Java,C#,Python等程序設計中使用線程時,我們使用用戶線程。
每個線程中都包含一些獨特的數據,有助于識別它們,例如:
程序計數器:程序計數器負責跟蹤指令并告訴下一條指令要執行。
寄存器:系統寄存器用于跟蹤線程的當前工作變量。
堆棧:它包含線程執行的歷史記錄。
內核級線程:它們由操作系統實現和支持,它們通常比用戶線程花費更多的時間來執行,例如Window Solaris。
多線程模型分為三種類型
多對多:任意數量的用戶線程都可以與相等或更少數量的內核線程進行交互。
多對一:它將許多用戶級線程映射到一個內核級線程。
一對一:用戶級線程和內核級線程之間的關系是一對一的。
多線程是在系統或程序中引入并行性的一種方式,因此,您可以在看到并行路徑的任何地方(兩個線程都不依賴于彼此的結果)使用它,以使其變得快速,容易。
大數據的處理可以分為多個部分,并使用多個線程來完成。
涉及諸如驗證和保存,產生和消費,讀取和驗證之類的機制的應用程序是在多個線程中完成的。這種應用程序的例子很少,例如網上銀行,充值等。
它可用于制作不同元素在不同線程上運行的游戲。
在Android中,它用于訪問在后臺線程中運行的API,以防止應用程序停止運行。
在Web應用程序中,當您希望您的應用程序獲得異步調用并異步執行時使用它。
經濟:因為它們共享相同的處理器資源,因此非常經濟。創建線程所需的時間更少。
資源共享:它允許線程共享資源,例如數據,內存,文件等。因此,應用程序可以在同一地址空間內具有多個線程。
響應速度:它提高了對用戶的響應速度,因為它允許程序繼續運行,即使它的一部分正在執行冗長的操作或被阻塞。
可擴展性:它增加了多CPU機器上的并行性,它增強了多處理器計算機的性能,
這樣可以更好地利用CPU資源。
增加并行度
充分利用可用的CPU資源。
改善應用程序的響應能力并與用戶進行更好的交互。
在計算機世界中,當我們談論并行性時,我們談論的是多線程。實現多線程是相當有效和直接的,因為它使工作更便宜,它處理異步的特長使其獨樹一幟。因此,它是有需求的,并且是值得學習的技術。
以上就是動力節點小編介紹的"什么是多線程",希望對大家有幫助,想了解更多可查看Java多線程編程,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習