導航:首頁 > 軟體知識 > 程序員怎麼控制多線

程序員怎麼控制多線

發布時間:2023-02-22 12:27:27

① 什麼是多線程

多線程(英語:multithreading)是指從軟體或者硬體上實現多個線程並發執行的技術。具有多線程能力的計算機因有硬體支持而能夠在同一時間執行多於一個線程,進而提升整體處理性能。具有這種能力的系統包括對稱多處理機、多核心處理器以及晶元級多處理(Chip-level multithreading)或同時多線程(Simultaneous multithreading)處理器。 軟體多線程,即便處理器只能運行一個線程,操作系統也可以通過快速的在不同線程之間進行切換,由於時間間隔很小,來給用戶造成一種多個線程同時運行的假象。這樣的程序運行機制被稱為軟體多線程。

定義
在計算機編程中,一個基本的概念就是同時對多個任務加以控制。許多程序設計問題都要求程序能夠停下手

頭的工作,改為處理其他一些問題,再返回主進程。可以通過多種途徑達到這個目的。最開始的時候,那些掌握機器低級語言的程序員編寫一些「中斷服務常式」,主進程的暫停是通過硬體級的中斷實現的。盡管這是一種有用的方法,但編出的程序很難移植,由此造成了另一類的代價高昂問題。中斷對那些實時性很強的任務來說是很有必要的。但對於其他許多問題,只要求將問題劃分進入獨立運行的程序片斷中,使整個程序能更迅速地響應用戶的請求。

最開始,線程只是用於分配單個處理器的處理時間的一種工具。但假如操作系統本身支持多個處理器,那麼每個線程都可分配給一個不同的處理器,真正進入「並行運算」狀態。從程序設計語言的角度看,多線程操作最有價值的特性之一就是程序員不必關心到底使用了多少個處理器。程序在邏輯意義上被分割為數個線程;假如機器本身安裝了多個處理器,那麼程序會運行得更快,毋需作出任何特殊的調校。根據前面的論述,大家可能感覺線程處理非常簡單。但必須注意一個問題:共享資源!如果有多個線程同時運行,而且它們試圖訪問相同的資源,就會遇到一個問題。舉個例子來說,兩個線程不能將信息同時發送給一台列印機。為解決這個問題,對那些可共享的資源來說(比如列印機),它們在使用期間必須進入鎖定狀態。所以一個線程可將資源鎖定,在完成了它的任務後,再解開(釋放)這個鎖,使其他線程可以接著使用同樣的資源。

多線程是為了同步完成多項任務,不是為了提高運行效率,而是為了提高資源使用效率來提高系統的效率。線程是在同一時間需要完成多項任務的時候實現的。

最簡單的比喻多線程就像火車的每一節車廂,而進程則是火車。車廂離開火車是無法跑動的,同理火車也不可能只有一節車廂。多線程的出現就是為了提高效率。同時它的出現也帶來了一些問題。

用途
在大多數研究領域內是要求線程調度程序要能夠快速選擇其中一個已就緒線程去運行,而不是一個一個運行而降低效率。所以要讓調度程序去分辨線程的優先順序是很重要的。而線程調度程序可能是以硬體、軟體,或是軟硬體並存的形式存在。

而另一個研究領域則是要研究何種事件(高速緩存失敗、內部運行連續性、使用DMA等)會造成線程切換。

如果多線程的方案會復制所有軟體可見的狀態,包括特許的控制登錄、TLB 等,那就能夠讓虛擬機去創造各式線程。這樣子就允許在相同的處理器中每個線程跑各自的操作系統。換句話說,如果只有存儲了用戶模式的狀態,就能夠讓相同的裸晶大小的晶元在一段時間內處理更多的線程。

閱讀全文

與程序員怎麼控制多線相關的資料

熱點內容
遵義的古董交易市場在哪裡 瀏覽:845
如何做巴斯夫代理 瀏覽:527
怎麼獲得全部信息 瀏覽:907
信息技術的服務主體是什麼 瀏覽:527
遷戶口程序是什麼意思 瀏覽:732
宜春代理記賬一個月多少錢 瀏覽:516
一加手機如何解除後台程序 瀏覽:294
顯卡程序右上角圖標怎麼關 瀏覽:930
護膚酸有哪些產品 瀏覽:22
什麼叫包灰技術 瀏覽:332
什麼表示jdk常用程序 瀏覽:654
中國信息招標怎麼樣 瀏覽:68
微信小程序去水印哪個好用 瀏覽:118
招主播招代理合夥人是怎麼回事 瀏覽:343
17歲學什麼技術 瀏覽:557
時鍾屏幕保護程序什麼意思 瀏覽:708
在東莞找什麼代理 瀏覽:671
錢江小商品市場在什麼區 瀏覽:637
杭州市場拿貨需要什麼 瀏覽:288
錘子手機如何繞數據線 瀏覽:76