C 多執行緒使用場景

2022-07-12 18:24:14 字數 619 閱讀 1154

任何程式在執行時,至少有乙個主線程。

什麼是執行緒?

執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器(棧指標、程式計數器等),但**區是共享的,即不同的執行緒可以執行同樣的函式。

什麼是多執行緒?

多執行緒是指程式中包含多個執行流,即在乙個程式中可以同時執行多個不同的執行緒來執行不同的任務,也就是說允許單個程式建立多個並行執行的執行緒來完成各自的任務。

多執行緒的好處:

可以提高cpu的利用率。在多執行緒程式中,乙個執行緒必須等待的時候,cpu可以執行其它的執行緒而不是等待,這樣就大大提高了程式的效率。  

多執行緒的不利方面:

執行緒也是程式,所以執行緒需要占用記憶體,執行緒越多占用記憶體也越多;  

多執行緒需要協調和管理,所以需要cpu時間跟蹤執行緒;  

執行緒之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題;

執行緒太多會導致控制太複雜,最終可能造成很多bug;

多執行緒一般用在同時執行後台資料處理和使用者介面的更新的時候

有很多任務需要並行進行

直接建立thread物件,並且呼叫它的start方法

使用threadpool.queueuserworkitem方法

使用backgroundworker

多執行緒使用場景

newcachedthreadpool 建立乙個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時將重用它們。對於執行很多短期非同步任務的程式而言,這些執行緒池通常可提高程式效能。呼叫 execute 將重用以前構造的執行緒 如果執行緒可用 如果現有執行緒沒有可用的,則建立乙個新執行緒並...

多執行緒的應用場景

通俗的解釋一下多執行緒先 多執行緒用於堆積處理,就像乙個大土堆,乙個推土機很慢,那麼10個推土機一起來處理,當然速度就快了,不過由於位置的限制,如果20個推土機,那麼推土機之間會產生相互的避讓,相互摩擦,相互擁擠,反而不如10個處理的好,所以,多執行緒處理,執行緒數要開的恰當,就可以提高效率。多執行...

java多執行緒應用場景

多執行緒是基於乙個程序的多個執行過程。多執行緒貌似是提高了處理機的處理速度。實際是這樣麼?假設我們要做一萬次for迴圈,有十個執行緒,每個執行緒做1000次。那麼多執行緒會比單執行緒執行的快麼。針對單核cpu來說,單執行緒是最快的。因為多執行緒並不是真正意義上的多個一起執行。而是每個程序都在一定時間...