2023年學習計畫

2021-09-19 05:03:45 字數 1227 閱讀 1005

執行緒池的原理,為什麼要建立執行緒池?

減少建立執行緒和銷毀執行緒的開銷,使執行緒可以達到復用的效果。

執行緒的生命週期,什麼時候會出現僵死執行緒;

1)新建狀態——(2)就緒狀態—((4)阻塞狀態)—(3)執行狀態——(5)死亡狀態

當前程序執行結束後,其父程序仍在執行或仍未結束並且父程序沒有呼叫wait來清理以結束的子程序。導致出現大量的殭屍執行緒,也就是不可用執行緒,造成執行緒堆積過多。(如果程序不呼叫wait / waitpid的話, 那麼保留的那段資訊就不會釋放,其程序號就會一直被占用,但是系統所能使用的程序號是有限的,如果大量的產生僵死程序,將因為沒有可用程序號而導致系統不能產生新的程序. 此即為殭屍程序的危害,應當避免。)

什麼實現執行緒安全,如何實現執行緒安全;

(經典必看)

建立執行緒池有哪幾個核心引數?如何合理配置執行緒池的大小?

corepoolsize:執行緒池核心執行緒數量maximumpoolsize:執行緒池最大執行緒數量keepalivertime:當活躍執行緒數大於核心執行緒數時,空閒的多餘執行緒最大存活時間unit:存活時間的單位workqueue:存放任務的佇列handler:超出執行緒範圍和佇列容量的任務的處理程式

執行緒等待時間所佔比例越高,需要越多執行緒。執行緒cpu時間所佔比例越高,需要越少執行緒。 對於不同性質的任務來說,cpu密集型任務應配置盡可能小的執行緒,如配置cpu個數+1的執行緒數,io密集型任務應配置盡可能多的執行緒,因為io操作不占用cpu,不要讓cpu閒下來,應加大執行緒數量,如配置兩倍cpu個數+1,而對於混合型的任務,如果可以拆分,拆分成io密集型和cpu密集型分別處理,前提是兩者執行的時間是差不多的,如果處理時間相差很大,則沒必要拆分了。

若任務對其他系統資源有依賴,如某個任務依賴資料庫的連線返回的結果,這時候等待的時間越長,則cpu空閒的時間越長,那麼執行緒數量應設定得越大,才能更好的利用cpu。 

當然具體合理執行緒池值大小,需要結合系統實際情況,在大量的嘗試下比較才能得出,以上只是前人總結的規律。

synchronized、volatile區別、synchronized鎖粒度、模擬死鎖場景、原子性與可見性;

(經典必看)

spring

2023年計畫安排

2018年已經結束,仔細回味一下,似乎什麼都沒有得到,但是卻失去了很多。越來越偏離自己所規劃的路線,使得自己成為了乙個自己都覺得陌生的人。2019年悄然來到,希望2019年能夠成為自己想要成為的人。在生活上,逐步調整自己的作息時間,逐步恢復自己的身體。在學習上,早日發出 然後去實習。提公升工作技能。...

2023年總結 2023年計畫

今天加了來自的好友,才意識到部落格已經荒廢了許久。其實自己最近也是考慮了總結一下這個繁忙的2018。2019計畫 1 多給家裡通 2.多讀書,非 3.堅持吃黑芝麻 4.build 乙個能稱為系統的系統 5.學會管理情緒 6.少吃多動邁開腿 7.早起早起 2018總結 1 從github到gitlab...

2019暑假學習計畫

前言 既然暑假沒有作業,那幹嘛呢?當然是刷資訊學了。由於之前利用自我剖析總結出了許多小問題,很多知識點沒有掌握。那麼現在我就列個學習清單以免忘記。關於dp 學習各種優化 1d1d 斜率優化 插頭dp 關於搜尋 a ida 退火關於圖論 網路流 複習 點分治啟發式合併 關於資料結構 分塊 莫隊 lct...