執行緒和執行緒池優缺點

2022-03-29 06:58:03 字數 678 閱讀 6981

每次new thread的時候,都會建立乙個單執行緒,但是,我們在專案中基本都是使用執行緒池,本文主要整理了執行緒和執行緒池的優缺點。

優點:通過new thread()建立執行緒的api簡單易用,結構清晰,對於執行單一的一次性任務十分便利。

缺點

每次new thread都新建物件,效能差;

沒有執行緒管理者,可能會無限制新建執行緒,不僅會消耗系統資源,還會降低系統的穩定性,例如占用過多的系統資源導致oom;

缺乏更多功能,比如定時、定期、併發數控制等功能。

合理利用執行緒池能夠帶來三個好處:

提到執行緒池,就自然而然的想起了池化技術,池化技術的思想主要是提前快取大量的資源,減少每次獲取資源的消耗,提高對資源的利用率,特別是在高併發場景這種提高更加明顯。使用池化技術快取的資源物件有如下共同特點:

物件建立時間長;

物件建立需要大量資源;

物件建立後可被重複使用。

除了上述執行緒池使用了池化技術,物件池、記憶體池(memory pool)、資料庫連線池和http連線池等也使用了。

資料庫連線池比較典型的有sqlserver、oracle和mysql的連線池。物件池就是提前建立很多物件,將用過的物件儲存起來,等下一次需要這種物件的時候,再拿出來重複使用。同樣,這麼好的思想在activemq連線池中也得到了應用。

單執行緒和多執行緒的優缺點

壞處 增加了排程和管理的開銷,帶來了一些不確定性,需要複雜的同步機制,避免死鎖等等。好處 一定程度上提高響應速度,在多核的情況下還是更能充分利用cpu資源的。如果執行緒出現死鎖,唯一能證明的就是應用程式有問題,這並不是執行緒的缺點。執行緒相對於程序的優點 1 開銷小 2 資源共享性好。執行緒相對於程...

Python筆記 程序和執行緒的優缺點

我們介紹了多程序和多執行緒,這是實現多工最常用的兩種方式。現在,我們來討論一下這兩種方式的優缺點。首先,要實現多工,通常我們會設計master worker模式,master負責分配任務,worker負責執行任務,因此,多工環境下,通常是乙個master,多個worker。如果用多程序實現maste...

程序執行緒優缺點和應用場景

程式設計相對容易 通常不需要考慮鎖和同步資源的問題。更強的容錯性 比起多執行緒的乙個好處是乙個程序崩潰了不會影響其他程序。有核心保證的隔離 資料和錯誤隔離。對於使用如c c 這些語言編寫的本地 錯誤隔離是非常有用的 採用多程序架構的程式一般可以做到一定程度的自恢復 master守護程序監控所有wor...