1樓:蘋果魅力
執行緒是作業系統能夠進行運算排程的最小單位;它被包滲培含在程序之中,是程序中的實際運作單位。
多執行緒,是指從軟體或者硬體上實現多個執行緒併發執行的技術。具有多執行緒能力的計算機因有硬體支援而能夠在同一時間執行多於乙個執行緒,進而提公升整體處理效能。
簡單來說:執行緒是程式中乙個單一的順序控制流程;而多執行緒就是在單個程式中同時執行多個執行緒來完成不同的工作。
多執行緒是為了同步完成多項任務,不是為了提高執行效率,而是為了提高資源使用效率來提高系統的效率。多執行緒是在同一時間需要完成多項任務的時候實現的。
多執行緒的優缺點。
優點:1)、多執行緒技術可以加快程式的執行速度,使程式的響應速度更快,因為使用者介面可以在進行其它工作的同時一直處於活動狀態。
2)、可以把佔據長時間的程式中的任務放到後臺去處理,同時執行其他操作,提高效率。
3)、當前沒有進行處理的任務時可以將處理器時間讓給叢陪唯其它任務。
4)、可以讓同乙個程式的不同部分併發執行,釋放一些珍貴的資源如記憶體佔用等等。
5)、可以隨時停止任務。
6)、可以分別設定各個任務的優先順序以優化效能。
缺點:1)、因為多執行緒需要開闢記憶體,而且執行緒切換需要時間因此會很消耗系統記憶體。
2)、執行緒的終止會對程式產生影響亂空。
3)、由於多個執行緒之間存在共享資料,因此容易出現執行緒死鎖的情況。
4)、對執行緒進行管理要求額外的 cpu開銷。執行緒的使用會給系統帶來上下文切換的額外負擔。
2樓:由朋問雯麗
多執行緒是這樣一種機制,它允許在程式中併發執行多個指令流,每個指令流都稱舉指為乙個執行緒,彼此間互相獨正散配立。執行緒又稱為輕量級程序,它和程序一樣掘仔擁有獨立的執行控制,由作業系統負責排程。
單執行緒和多執行緒的區別
3樓:枚樂悅
多執行緒和單執行緒本質區別是:
1)多執行緒的產生並不是因為發明了多核cpu甚至現在有多個cpu+多核的硬體,也不是因為多執行緒cpu執行效率比單執行緒高。單從cpu的執行效率上考慮,單任務程序及單執行緒效率是最高的,因為cpu沒有任何程序及執行緒的切換開銷,2)實際上,多執行緒的出現主要為了解決io裝置的讀寫速度往往比cpu的處理速度慢造成的單執行緒程式執行阻塞問題,乙個極端的例子就是如果你需要使用者在鍵盤上輸入乙個資料,當使用者沒有輸入前,單執行緒程式就阻塞了,多執行緒程式就可以放個**或繼續幹一些程式中除了鍵盤輸入外的工作,因此,多執行緒能提高因程式由於等待某個資源阻塞時其他資源的利用率(是利用率不是效率)。
3)因此多執行緒與單執行緒的最大區別,多執行緒程式能在等待某個io操作時,繼續完成非這個io的其他工作,有利於提高完成整個任務的效果和速度。此外,多執行緒程式與單執行緒程式對程式設計也有不同的流程和結構,多執行緒需要考慮對靜態變數等資源的操作互鎖及程式執行的同步問題。
乙個程式有幾個執行緒, 執行緒是什麼東東?
4樓:科創
分類: 電腦/網路 >>程式設計 >>其他程式語言。
問題描述:如題~解析:
執行緒(thread, 臺灣稱 執行緒)是"程序"中某個單一順序的控制流。也被稱為輕量程序(ligheight processes)。電腦科學術語,指執行中的程式的排程單位。
執行緒是程序中的實體,乙個程序可以擁有多個執行緒,乙個執行緒必須有乙個父程序。線喚敗程不擁有系統資源,只有執行必須的一些資料結構;它與父程序的其它執行緒共享該程序所擁有的全部資源。執行緒可以建立和撤消執行緒,從而實現程式的併發執行。
一般,執行緒具有就緒、阻塞和執行三種基本狀態。
在多**處理器的系統裡,不同執行緒可以同時在不同的**處理器上執行,甚至當它們屬於同乙個程序時也是如此。大多數支援多處理器的作業系統都提供程式設計介面來讓程序可以控制自己的執行緒與各處理器之間的關聯度(affinity)。
有時候,執行緒也稱作輕量級程序。就象程序一樣,執行緒在程式中是獨立的、併發的執行路徑,每個執行緒有它自己的堆疊、自己的程式計數器和自己的區域性變數。但是,與分隔的程序相比,程序中的執行緒之間的隔離程和喚顫度要小。
它們共享記憶體、檔案控制代碼和其它每個程序應有的狀態。
程序可以支援多個執行緒,它們看似同時執行,但互相之間並不同步。乙個程序中的多個線鏈扒程共享相同的記憶體位址空間,這就意味著它們可以訪問相同的變數和物件,而且它們從同一堆中分配物件。儘管這讓執行緒之間共享資訊變得更容易,但您必須小心,確保它們不會妨礙同一程序裡的其它執行緒。
多執行緒的定義是什麼?
5樓:網友
在乙個程式中,這些獨立執行的程式片斷叫作「執行緒」(thread),利用它程式設計的概念就叫作「多執行緒處理」。
6樓:尚學堂j**a學院
希望對您有所幫助!~
多執行緒是什麼,有什麼好處呢
7樓:匿名使用者
舉個例子,你要做飯,你要做的飯是公尺飯和乙個炒菜。
如果是單執行緒,那麼你可以如下做:
第一種方法:先炒菜,然後開始蒸公尺飯;
第二種方法:先蒸公尺飯,等公尺飯熟了再炒菜;
如果是多執行緒,那麼你就可以如下做:
先蒸公尺飯,在蒸公尺飯的過程中去炒菜。
有些問題的解決用多執行緒會提高效率,比如上邊的例子。但是有時不會提高效率,反而會影響效率:
比如,你要洗衣服,還打算做家庭作業(假設你是小學生,老師給你佈置的家庭作業)。
如果是單執行緒:你要麼洗完衣服做作業,要麼做完作業洗衣服。
如果是多執行緒:你洗一分鐘衣服做一分鐘作業,交叉進行,顯然有些時間都耗在了任務的切換上了。
所以,多執行緒主要用於,當乙個任務需要不佔用資源的等待的時候,可以使用空閒的資源做其他的事情。比如類似於qq聊天的程式,程式的乙個執行緒一直在等待著看是否有好友發訊息過來,而與此同時另乙個執行緒允許你打字並且將自己的訊息傳送給對方。
以上例子並不是很完美,只是希望能借這些例子對多執行緒有所理解。
多執行緒的優點,多執行緒的程式有什麼好處?
使用執行緒可以把佔據時間長的程式中的任務放到後台去處理 使用者介面可以更加吸引人,這樣比如使用者點選了乙個按鈕去觸發某些事件的處理,可以彈出乙個進度條來顯示處理的進度。程式的執行速度可能加快。在一些等待的任務實現上如使用者輸入 檔案讀寫和網路收發資料等,執行緒就比較有用了。在這種情況下可以釋放一些珍...
C 多執行緒 Mutex 類的問題。
你這種方式是比較合理的方式,lpclassname 是要查的,而且也是固定的。如果你不用 lpclassname 可以用程式的標題intptr hwnd findwindow null,標題 showwindowasync hwnd,1 setforegroundwindow hwnd c 多執行緒...
為什麼有人說Python的多執行緒是雞肋
差不多是這樣子。多執行緒目前僅用於網路多執行緒採集,以及效能測試。其它的語言也有類似的情況,執行緒本身的特點導致執行緒的適用範圍是受限的。只有cpu過剩,而其它的任務很慢,此時用執行緒才是有益的,可以很好平衡等待時間,提高併發效能。執行緒的問題主要是執行緒的安全穩定性。執行緒無法強制中止,同時執行緒...