Algorithm-一週至少一道算法題
Review-閱讀並點評至少一篇英文技術文章
Tip-學習至少一個技術技巧,總結和歸納在日常工作中所遇到的知識點
Share-分享一篇有觀點和思考的技術文章
01-Algorthm
———————
https://leetcode.com/problems/insert-into-a-binary-search-tree
思路:記住二叉搜索樹的特性,左子樹比根節點小,右子樹比根節點大,根據這個判斷不斷往下走,直到找到空節點,就可以把節點添加進去。
02-Review
——————
https://muratbuffalo.blogspot.com/2018/04/book-review-how-to-write-lot-practical.html
一篇書評,講如何寫文章的練習,一直在練習寫作,所以對這個話題也挺感興趣。
作者總結了幾個建議:
關於找時間寫作,把寫作放到自己的日程上,只有這個方法
自律,該幹嘛幹嘛,該寫作就寫作,而不要去瀏覽郵件/上網
開始寫,就會有靈感了,不要等到靈感來了纔行動
列出寫作計劃
先寫,後面在修改,不要同時進行(草稿)
這周寫的博客也深有體會,其實最重要的就是找到一個主題,先去寫,先動手,就會有新的想法產生,全部寫完之後,再找時間去慢慢修改,如果有畫圖的地方,也是寫完之後再修改。
03-Tip
——————
樂觀鎖與悲觀鎖
悲觀鎖
總是假設最壞的情況,指的是對數據被外界(包括本系統當前的其他事務,以及來自外部系統的事務處理)修改持保守態度,因此,在整個數據處理過程中,將數據處於鎖定狀態。在悲觀鎖的情況下,讀數據時加鎖,其他事務無法修改這些數據,修改數據時也加鎖,其他事務無法讀取這些數據。
Java中synchronized和ReentrantLock等獨佔鎖就是悲觀鎖思想的實現。
樂觀鎖
樂觀鎖,總是假設最好的情況,每次操作數據都認爲別人不會修改,所以不會加鎖。在更新的時候會判斷一下在此期間有沒有其他行爲去更新這個數據,可以使用版本號機制和CAS算法實現。樂觀鎖適用於多讀的應用場景。
在Java中`java.util.concurrent.atomic`包下面的原子變量類就是使用了樂觀鎖的一種實現方式CAS實現的。
04-Share
—————
blog-Raft探索歷程-part2
原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。
如果本文對你有幫助,請點個贊吧,謝謝
更多精彩內容,請關注個人公衆號。