關於Java多執行緒的執行緒同步和執行緒通訊的一些小問題(順便分享幾篇高質量的博文)
一、對於執行緒同步和同步鎖的理解(注:分享了三篇高質量的部落格)
以下我精心的挑選了幾篇博文,分別是關於對執行緒同步的理解和如何選擇執行緒鎖以及瞭解執行緒鎖的作用範圍。
<一>執行緒同步鎖的選擇
2. 以上推薦的博文是以賣火車票為例,引出了非同步會導致的錯誤以及同步鎖(監視器)應該如果選擇,應該能夠幫助大家理解同步鎖。
<二>執行緒同伴鎖用法及同步鎖的作用範圍
2. 以上的博文將靜態鎖(位元組碼檔案鎖)和非靜態鎖(this)進行了對比,以及將執行緒非同步和執行緒同步下進行了對比,對大家瞭解執行緒鎖的用法和作用範圍有很大的幫助。
<三>對執行緒同步的理解
2. 以上推薦的博文以非常通俗易懂的觀點解釋了到時什麼同步,將同步理解成了執行緒同步就是執行緒排隊,而且舉了一些日常生活中的例子來讓大家理解到底什麼是同伴。
<四>同步的作用場景
1. 並不是說同步在什麼情況下都是好的,因為執行緒的同步會帶來較低效率,因為執行緒同步就代表著執行緒要排隊,即執行緒同步鎖會帶來的同步阻塞狀態。
2. 因為CPU是隨意切換執行緒的,當我們想讓當前執行緒執行之後CPU不隨意切換到其他執行緒,或者我們想要讓某個執行緒的程式碼能夠在完全執行之前不會被搶奪執行權,不會導致從而無法連續執行,那麼我們就需要執行緒的幫助。