多執行緒引起的效能問題分析

馮旭_Android發表於2020-11-25
  1. 建立執行緒的方式:繼承Thread類;實現Runnable介面

        兩種方式的主要區別在於多執行緒訪問同一資源的情況下,用Runnable建立的執行緒可以處理同一資源,而Thread類建立的執行緒則各自獨立處理,各自擁有自己的資源。

        多執行緒引發的問題:

        (1)、執行緒的建立和銷燬都需要時間,當有大量的執行緒建立和銷燬時,那麼這些時間的消耗則比較明顯,將導致效能上的缺失。

        (2)、大量的執行緒建立、執行和銷燬是非常耗CPU和記憶體的,這樣直接影響系統的吞吐量,導致效能急劇下降,如果記憶體資源佔用的比較多,還很可能造成OOM。

        (3)、大量的執行緒的建立和銷燬很容易導致GC頻繁的執行,從而發生記憶體抖動現象,而發生記憶體抖動,對移動端來講,最大的影響就是造成頁面卡頓。

        解決辦法:

        重用已有的執行緒,從而減少執行緒的建立和銷燬,這就需要使用執行緒池,執行緒池的基本作用就是進行執行緒的複用。

 

相關文章