<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cherishrfly的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cherishrfly</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cherishrfly]]></copyright><item><title><![CDATA[二叉搜索树和红黑树的操作]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/124790300</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/124790300</guid><author>cherishrfly</author><pubDate>Sun, 15 May 2022 23:28:31 +0800</pubDate><description><![CDATA[数据结构-树]]></description><category></category></item><item><title><![CDATA[leetcode子集和组合问题]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/124776540</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/124776540</guid><author>cherishrfly</author><pubDate>Sun, 15 May 2022 00:39:18 +0800</pubDate><description><![CDATA[leetcode算法]]></description><category></category></item><item><title><![CDATA[设计模式相关]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/123141342</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/123141342</guid><author>cherishrfly</author><pubDate>Sat, 26 Feb 2022 17:42:46 +0800</pubDate><description><![CDATA[文章目录一、常见的设计模式1.简单工厂方法二、不同设计模式的区别2.装饰器模式和适配器模式对比
一、常见的设计模式
1.简单工厂方法
二、不同设计模式的区别
2.装饰器模式和适配器模式对比

...]]></description><category></category></item><item><title><![CDATA[数据库的锁]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/123134946</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/123134946</guid><author>cherishrfly</author><pubDate>Fri, 25 Feb 2022 16:45:42 +0800</pubDate><description><![CDATA[数据库的锁
分类
从性能上分为乐观锁和悲观锁；
从对数据库的操作类型分为读锁和写锁；
从对数据操作的力度分为表锁和行锁；
乐观锁和悲观锁
1.概念
乐观锁就是在获取或者更新数据的时候认为冲突比较少，并在提交的时候检查是否违反数据完整性。
乐观锁通常有两种实现方式：
（1）在记录中添加版本号字段version，当读取记录时，将version字段读出，数据每更新一次，将version加一。当我们提交更新的时候，判断数据库表对应记录的当前版本信息与第一次读取的version进行对比，如果记录的当前版本号与第一次读]]></description><category></category></item><item><title><![CDATA[TCP拥塞控制算法]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/123128379</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/123128379</guid><author>cherishrfly</author><pubDate>Fri, 25 Feb 2022 13:41:15 +0800</pubDate><description><![CDATA[TCP拥塞控制算法
背景
在某段时间，若对网络中某一资源的需求超过了该资源所提供的可用部分，网络的性能就要变坏，这种情况就叫拥塞。单纯增加资源无法解决问题，比如增加某节点处理能力但输出链路处理速度没有变化，更多的数据包会超时重传从而引发更严重的拥塞。拥塞控制就是防止过多的数据注入到网络中，这样可以使网络中的路由器或链路不致过载。TCP的拥塞控制算法主要有四种：慢开始、拥塞避免，快重传和快恢复。
TCP的拥塞控制基于窗口，发送方维持一个拥塞窗口 cwnd的状态变量，拥塞窗口的大小取决于网络的拥塞程度，并且动态]]></description><category></category></item><item><title><![CDATA[并发三大特性和volatile关键字]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/108479039</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/108479039</guid><author>cherishrfly</author><pubDate>Thu, 10 Sep 2020 01:11:17 +0800</pubDate><description><![CDATA[并发三大特性和volatile关键字

文章目录并发三大特性和volatile关键字一、前置知识1.jmm内存模型2.jmm-jvm-cpu执行流程二、并发三大特性1.可见性2.原子性3.有序性三、volatile关键字1.可见性2.禁止指令重排四、问题：为什么volatile关键字没有原子性五、总结


一、前置知识
计算机为了提升效率需要使用多线程，多线程在竞争共享资源的时候存在线程安全的问题，为了描述和解决线程安全问题，需要引入jmm内存模型。

1.jmm内存模型
java内存模型（java mem]]></description><category></category></item><item><title><![CDATA[计算机的整体结构]]></title><link>https://blog.youkuaiyun.com/cherishrfly/article/details/108460002</link><guid>https://blog.youkuaiyun.com/cherishrfly/article/details/108460002</guid><author>cherishrfly</author><pubDate>Tue, 08 Sep 2020 01:29:26 +0800</pubDate><description><![CDATA[计算机的整体结构

冯诺依曼体系结构
现代的计算机遵从冯诺依曼体系结构，包含存储器、CPU、输入设备和输出设备。计算机中包含一个时钟，它每隔一段时间产生一次跳变，从而触发取指令和执行指令的操作。

存储器存放指令和数据。一条指令中通常包含了操作指令编码opcode、操作数，存储器型指令包含了内存地址。

CPU包含控制器、ALU和寄存器。CPU从内存中取出指令到寄存器中，接着根据指令中的地址从内存中取数，并放到ALU中进行计算。控制器用于设置控制信号，确保各个时钟周期中，各个部分执行预期的工作。

输入设备]]></description><category></category></item></channel></rss>