ARTS挑戰打卡第八週

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

原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。
如果本文對你有幫助,請點個贊吧,謝謝
更多精彩內容,請關注個人公衆號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章