ARTS挑战打卡第八周
Algorithm-一周至少一道算法题
Review-阅读并点评至少一篇英文技术文章
Tip-学习至少一个技术技巧,总结和归纳在日常工作中所遇到的知识点
Share-分享一篇有观点和思考的技术文章
文章图片
01-Algorthm
【ARTS挑战打卡第八周】———————
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
原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
如果本文对你有帮助,请点个赞吧,谢谢
更多精彩内容,请关注个人公众号。
文章图片
推荐阅读
- java基础|JAVA基础之超详细面向对象程序设计一|CSDN创作打卡
- #|【记】2021年第十二届极客大挑战
- 如何在 Vue 中加入图表 - Vue echarts 使用教程 - 卡拉云
- 云数据中心网络遇到的问题_阿帕云(云计算数据中心面临哪些安全挑战())
- LeetCode刷题|LeetCode刷题day22
- LeetCode刷题|LeetCode刷题day15
- MyGameLife|【MyGameLife】我的游戏职业生涯是从TS(TypeScript)开始的(2|CSDN创作打卡)
- 基于python利用Pyecharts使高清图片导出并在PPT中动态展示
- 班班有读高年级《你的脚下|班班有读高年级《你的脚下 我的脚下》共读第2天
- 第五节课打卡|第五节课打卡 李鑫