Synchronized 和執行緒池篇

2021-09-25 09:37:42 字數 657 閱讀 1799

corepoolsize = n

maximumpoolsize = n

keepalivetime = 0l

workqueue = linkedblockqueue

特點為固定執行緒池大小,缺點執行緒較多的時候會導致佇列等待執行緒較多,造成oom

corepoolsize = 0

maximumpoolsize = integer.max_value

keepalivetime = 60l

unit = second

workqueue = synchronousqueue

特點為執行緒池可動態擴充套件,當執行緒池的執行緒不夠的時候,會建立執行緒,當空閒執行緒超過時間的時候,會**執行緒。 缺點:最大執行緒數量為interger.max_valus,執行執行緒過多的時候會oom

abortpolicy : 拒絕所有服務,直接拋異常

callerrunspolicy : 只用呼叫者所在的執行緒來執行任務

discardpolicy : 不處理,直接丟棄掉任務

discardoldestpolicy : 丟棄掉阻塞佇列中存放時間最久的任務,執行當前任務

執行緒synchronized 例子

public class foo public int fix int y return x public class myrunnable implements runnable catch interruptedexception e system.out.println thread.curr...

執行緒同步synchronized

synchronized只是保證在同乙個時刻,其他執行緒不能訪問鎖定的資源,但是其他方法或者是變數不能鎖定控制的 synchronized obj 上面語法格式中synchronized後括號裡的obj就是同步監視器,上面 的含義是 執行緒開始執行同步 塊之前,必須先獲得對同步監視器的鎖定。任何時刻...

執行緒鎖 synchronized

使用 synchronized解決執行緒同步問題相比較nslock要簡單一些,日常開發中也更推薦使用此方法。首先選擇乙個物件作為同步物件 一般使用self 然後將 加鎖 爭奪資源的讀取 修改 放到 塊中。synchronized中的 執行時先檢查同步物件是否被另乙個執行緒占用,如果占用該執行緒就會處...