執行緒的一次學習筆記

2021-10-25 07:24:46 字數 947 閱讀 7438

本次筆記,記錄的是「如何理解上文中的一些內容」?

1、原文:

「當發現佇列滿了後,就會呼叫變數queue的wait()方法,該生產者執行緒就會被進入等待狀態,並且釋放queue物件的監視器鎖,讓其他生產者執行緒和消費者執行緒去競爭這個監視器鎖,打破了死鎖產生的四個條件中的請求並持有條件,避免發生死鎖,同樣的,當發現佇列空了後,也會呼叫變數queue的wait()方法,該消費者執行緒會進入等待狀態,並且釋放queue物件的監視器鎖,讓其他消費者執行緒和生產者執行緒去競爭這個監視器鎖,打破了死鎖的四個條件中的請求並持有條件,避免發生死鎖」

理解:呼叫wait會釋放鎖,由其他執行緒(生產線程、消費執行緒)進行搶占,待當前執行緒再次搶占到鎖的時候,才會繼續執行後續**。

public void produce()  catch (interruptedexception e) 

}//如果佇列沒滿,建立新的object物件放在隊尾

queue.offer(new object());

logutils.i(tag,"生產者(執行緒名:" + thread.currentthread().getname() + "生產乙個產品");

//通知其他生產者執行緒和消費者執行緒

queue.notifyall();

}}public void consume() catch (interruptedexception e)

}//如果佇列存在元素,將隊首元素出列

queue.poll();

logutils.i(tag, "消費者(執行緒名:" + thread.currentthread().getname() + ":消費乙個產品");

//通知其他消費者執行緒和生產者執行緒

第一次學習筆記

昨晚做了一道leetcode簡單題 第一次做題 最後呢在vs裡面能執行,但在 上就會報錯,感覺是記憶體哪兒的問題 查了一下,雖然提交失敗了,我也是在不知道咋改,但 做完這道題還是有收穫的 if和else,雙if巢狀後面的else注意大括號,還有裡面的if與外面的else無關係 字串是const ch...

學習筆記(第一次作業)

線性電源與開關電源基礎知識 在實驗中ac dc 36v 1.系統供電 可跟蹤直流穩定電源 3路輸出 鐵殼電源 防誤觸及減少紋波 從直流穩壓電源出來後接乙個穩壓晶元 7805 小功率直流穩壓電源 2.單相整流電路 3.濾波電路 變平滑 並電容注意耐壓 串電感 4.串聯型直流穩壓電路 5.三端整合穩壓器...

一次執行緒引發的髒資料

專案新增新功能,功能做完測試階段在資料庫出現髒資料,正常的資料有兩種 但是不定時會出現 這樣的資料,排查思路是這樣的 一 問題分析。髒資料應該不是憑空出現的,按照資料內容情況比較像兩種型別的資料拼接而成。而chargedate是date型別的資料轉換而成所以問題應該出現在date型別處理這方面,查詢...