<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[L.的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a_001aaa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a_001aaa]]></copyright><item><title><![CDATA[操作系统-内存管理]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122759778</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122759778</guid><author>a_001aaa</author><pubDate>Mon, 31 Jan 2022 16:07:49 +0800</pubDate><description><![CDATA[一个系统中的进程是与其他进程共享CPU与主存资源的。但是如果太多的进程需要太多的内存，那么他们中的一些就根本无法进行。如果当某个进程不小心写进另一个进程使用的内存，它就可能以某种完全和程序逻辑无关了令人迷惑的方式失败。]]></description><category></category></item><item><title><![CDATA[操作系统-进程调度]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122746744</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122746744</guid><author>a_001aaa</author><pubDate>Sat, 29 Jan 2022 20:09:30 +0800</pubDate><description><![CDATA[工作负载
确定工作负载是构建调度策略的关键部分。工作负载了解得越多，你的策略就越优化。
我们对操作系统中运行的进程（有时也叫工作任务）做出如下的假设：
1．每一个工作运行相同的时间。
2．所有的工作同时到达。
3．一旦开始，每个工作保持运行直到完成。
4．所有的工作只是用 CPU（即它们不执行 IO 操作）。
5．每个工作的运行时间是已知的。
调度的指标
调度指标。指标是我们用来衡量某些东西的东西，在进程调度中，有一些不同的指标是有意义的。只用一个指标：周转时间（turnaround time）。任务的周转]]></description><category></category></item><item><title><![CDATA[TCP与Http]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122746107</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122746107</guid><author>a_001aaa</author><pubDate>Sat, 29 Jan 2022 18:38:07 +0800</pubDate><description><![CDATA[TCP
一个Tcp连接由一个四元组构成，它们分别是两个IP地址和两个端日号。更准确地说,一个TCP连接是由一对端点或套接字构成,其中通信的每一端都由一对(IP地址,端口号)所唯一标识。
一个TCP连接通常分为3个阶段‥启动、数据传输(也称作“连接已建立”)和退出(关闭)。
socke ：有两种 一种是服务监听得socket 可以得到客户端建立得连接	server.accept()
一种是连接的socket 可以获取数据和发送数据 send   recv
主机分为 用户空间和内核空间
TCP三次握手和四次分手]]></description><category></category></item><item><title><![CDATA[Mysql]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122464728</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122464728</guid><author>a_001aaa</author><pubDate>Wed, 12 Jan 2022 23:50:20 +0800</pubDate><description><![CDATA[由于本人水平很有限，如有什么错误点，欢迎各位大佬指点。
MySQL
mysql架构

连接器：负责跟客户端进行连接，获取权限、维持和管理连接。连接分为长连接和短连接
分析器：Mysql把输入的sql字符串进行识别
优化器：优化策略RBO规则 CBO成本 在具体执行前，需要进行优化 决定使用那个索引、多表关联的顺序
执行器：执行sql语句
Mysql索引
mysql索引：为了加快查询速度 底层使用的是B+树的结构
mysql 的数据是存储在磁盘上的  要减少IO的次数 ，索引会占据磁盘的空间，索引虽然会提高查]]></description><category></category></item><item><title><![CDATA[Spring介绍与实现]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122236293</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122236293</guid><author>a_001aaa</author><pubDate>Thu, 30 Dec 2021 15:02:07 +0800</pubDate><description><![CDATA[作者水平很有限，如有什么错误点，欢迎各位大佬指点。
spring是什么
spring轻量级框架、核心功能IOC、AOP	Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器（框架）。

核心容器：核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory，它是工厂模式的实现。BeanFactory 使用控制反转（IOC） 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
Spring 上下文：Spring 上下文是一个配置文件，向 Spring 框架]]></description><category></category></item><item><title><![CDATA[[JDK源码]-J.U.C-ConcurrentSkipListMap]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122164889</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122164889</guid><author>a_001aaa</author><pubDate>Mon, 27 Dec 2021 09:29:23 +0800</pubDate><description><![CDATA[由于作者水平有限，如有什么错误点，多谢指出。 
ConcurrentSkipListMap
/*头节点          	   索引节点(最底层保存的是 数据节点 其他层保存的是 索引节点)
* +-+    right        +-+                      +-+
* |2|----------------&gt;| |---------------------&gt;| |-&gt;null
* +-+                 +-+                 ]]></description><category></category></item><item><title><![CDATA[[JDK源码]-J.U.C-ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/122135229</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/122135229</guid><author>a_001aaa</author><pubDate>Fri, 24 Dec 2021 20:34:15 +0800</pubDate><description><![CDATA[由于作者水平有限，如有什么错误点，多谢指出。 
ConcurrentHashMap
public class ConcurrentHashMap&lt;K,V&gt; extends AbstractMap&lt;K,V&gt;
    implements ConcurrentMap&lt;K,V&gt;, Serializable {
    //保存K-V 节点
	static class Node&lt;K,V&gt; implements Map.Entry&lt;K,V&gt; {
      ]]></description><category></category></item><item><title><![CDATA[[JDK源码]-J.U.C-ScheduledThreadPoolExecutor]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121972661</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121972661</guid><author>a_001aaa</author><pubDate>Thu, 16 Dec 2021 14:15:32 +0800</pubDate><description><![CDATA[以下是在学习中整理的一些内容，如有错误点，多谢指出。 
ScheduledExecutorService
可以用来在给定延时后执行异步任务或者周期性执行任务，由于放入的任务不一定能够立即执行，所以还是需要得放入队列，然后获取，看看是否满足执行条件：时间是否满足。
ScheduledExecutorService接口
public interface ScheduledExecutorService extends ExecutorService {
	//在延迟delay时间后执行command。unit为]]></description><category></category></item><item><title><![CDATA[[JDK源码]-J.U.C-ThreadPoolExecutor]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121925546</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121925546</guid><author>a_001aaa</author><pubDate>Tue, 14 Dec 2021 14:48:38 +0800</pubDate><description><![CDATA[以下是在学习中整理的一些内容，如有错误点，多谢指出。 
ThreadPoolExecutor线程池。

Executor
Excutor 是线程池的顶层接口。	定义了一个执行方法
public interface Executor {
    void execute(Runnable command);
}

传入一个Runnable对象，然后任务即可被执行。 抽象了一个Runnable 任务如何执行。
ExecutorService
ExcutorService 次级接口 在ExcutorService]]></description><category></category></item><item><title><![CDATA[[JDK源码]J.U.C-AQS.ConditionObject]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121745589</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121745589</guid><author>a_001aaa</author><pubDate>Mon, 06 Dec 2021 14:07:18 +0800</pubDate><description><![CDATA[ConditionObject内部类
条件变量	ConditionObject 实现了 Condition 接口
变量构造器定义
public class ConditionObject implements Condition, java.io.Serializable {
    //第一个等待节点
    private transient Node firstWaiter;
    //最后一个等待节点
    private transient Node lastWaiter;
    // 重复]]></description><category></category></item><item><title><![CDATA[[JDK源码]J.U.C-AbstractQueuedSynchronizer]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121725526</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121725526</guid><author>a_001aaa</author><pubDate>Sun, 05 Dec 2021 09:37:13 +0800</pubDate><description><![CDATA[AQS（一）简单介绍
原理：
AQS用于实现线程间的同步操作。它通过一个FIFO队列作为线程等待队列，一个volative 的state变量来作为同步状态，并且提供了大量的模板方法，子类可以通过实现这些方法来完成线程同步。
AQS核心变量
public abstract class AbstractQueuedSynchronizer 
extends AbstractOwnableSynchronizer implements java.io.Serializable {
    static final]]></description><category></category></item><item><title><![CDATA[[JDK源码]J.U.C-CyclicBarrier]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121701446</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121701446</guid><author>a_001aaa</author><pubDate>Fri, 03 Dec 2021 16:26:10 +0800</pubDate><description><![CDATA[CyclicBarrier原理
CyclicBarrier  ：屏障    需要等到所有的线程必须都到达之后，才能继续执行。
就是 parties 变量 如果是5 的话 就相当于  来人拦住他 够5个了 放行。
屏障的每次使用都表示为一个生成实例。 每当屏障被触发或重置时，生成就会改变。 由于锁的不确定性方式，可能有许多代与使用该障碍的线程相关联  可以分配给等待的线程——但是在同一时间只有一个线程是活动的({@code count}应用的线程)，其余的线程要么被破坏要么被触发。  如果有断点但没有后续重置]]></description><category></category></item><item><title><![CDATA[算法刷题打卡（十五）]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121674854</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121674854</guid><author>a_001aaa</author><pubDate>Thu, 02 Dec 2021 12:57:33 +0800</pubDate><description><![CDATA[Leetcode108、116、118、121.]]></description><category></category></item><item><title><![CDATA[[JDK源码]J.U.C-AQS-CountDownLatch和Semaphore]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121660118</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121660118</guid><author>a_001aaa</author><pubDate>Wed, 01 Dec 2021 17:24:43 +0800</pubDate><description><![CDATA[CountDownLatch和Semaphore]]></description><category></category></item><item><title><![CDATA[[JDK源码]J.U.C-AQS-ReentrantReadWriteLock]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121637092</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121637092</guid><author>a_001aaa</author><pubDate>Tue, 30 Nov 2021 16:57:40 +0800</pubDate><description><![CDATA[ReentrantReadWriteLock
读锁：就是用于读互斥区中保护的变量
写锁：就是用于写互斥区中保护的变量
读操作 是不需要上锁的，写需要上锁
适用于读多写少的场景，读锁可以并发，写锁与其他锁互斥。
主要属性和构造器
public class ReentrantReadWriteLock implements ReadWriteLock {
    // 读锁对象
    private final ReentrantReadWriteLock.ReadLock readerLock;
    /]]></description><category></category></item><item><title><![CDATA[算法刷题打卡（十四）]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121629492</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121629492</guid><author>a_001aaa</author><pubDate>Tue, 30 Nov 2021 11:56:49 +0800</pubDate><description><![CDATA[102 二叉树的层序遍历
102. 二叉树的层序遍历 - 力扣（LeetCode） (leetcode-cn.com)
给你一个二叉树，请你返回其按 层序遍历 得到的节点值。 （即逐层地，从左到右访问所有节点）。
示例：
二叉树：[3,9,20,null,null,15,7],
	3
   / \
  9  20
    /  \
   15   7

返回其层序遍历结果：
[
  [3],
  [9,20],
  [15,7]
]

    //宽度优先 按层遍历
	public List&lt;List]]></description><category></category></item><item><title><![CDATA[[JDK源码]J.U.C-AQS-ReentrantLock]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121594158</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121594158</guid><author>a_001aaa</author><pubDate>Sun, 28 Nov 2021 17:51:39 +0800</pubDate><description><![CDATA[AQS原理介绍：
AQS （AbstractQueuedSynchronizer）底层一个队列 阻塞队列  	-&gt;
​		Abstract：因为它并不知道怎么上锁。模板方法设计模式即可，暴露出锁逻辑。
​		Queue  ：线程阻塞队列   Synchronizer：同步
​		CAS + state 完成多线程枪锁逻辑		Queue 完成抢不到锁的线程排队
AQS核心代码
//获取锁
public final void acquire(int arg) {
    if (!tryAcquire(a]]></description><category></category></item><item><title><![CDATA[算法刷题打卡（十三）]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121589008</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121589008</guid><author>a_001aaa</author><pubDate>Sun, 28 Nov 2021 11:43:19 +0800</pubDate><description><![CDATA[91 解码方法
91. 解码方法 - 力扣（LeetCode） (leetcode-cn.com)
一条包含字母 A-Z 的消息通过以下映射进行了 编码 ：
‘A’ -&gt; 1
‘B’ -&gt; 2
…
‘Z’ -&gt; 26
要 解码 已编码的消息，所有数字必须基于上述映射的方法，反向映射回字母（可能有多种方法）。例如，“11106” 可以映射为：
“AAJF” ，将消息分组为 (1 1 10 6)
“KJF” ，将消息分组为 (11 10 6)
注意，消息不能分组为  (1 11 06) ，因为]]></description><category></category></item><item><title><![CDATA[算法刷题打卡（十二）]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121557245</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121557245</guid><author>a_001aaa</author><pubDate>Fri, 26 Nov 2021 12:31:25 +0800</pubDate><description><![CDATA[78 子集
78. 子集 - 力扣（LeetCode） (leetcode-cn.com)
给你一个整数数组 nums ，数组中的元素 互不相同 。返回该数组所有可能的子集（幂集）。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
示例 1：
输入：nums = [1,2,3]
输出：[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
示例 2：
输入：nums = [0]
输出：[[],[0]]
    public List&lt;List&lt;Integ]]></description><category></category></item><item><title><![CDATA[算法刷题打卡（十一）]]></title><link>https://blog.youkuaiyun.com/a_001aaa/article/details/121512502</link><guid>https://blog.youkuaiyun.com/a_001aaa/article/details/121512502</guid><author>a_001aaa</author><pubDate>Wed, 24 Nov 2021 12:11:55 +0800</pubDate><description><![CDATA[70 爬楼梯
70. 爬楼梯 - 力扣（LeetCode） (leetcode-cn.com)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？
注意：给定 n 是一个正整数。
示例 1：
输入： 2
输出： 2
解释： 有两种方法可以爬到楼顶。

1 阶 + 1 阶
2 阶
示例 2：
输入： 3
输出： 3
解释： 有三种方法可以爬到楼顶。
1 阶 + 1 阶 + 1 阶
1 阶 + 2 阶
2 阶 + 1 阶

//动态规划	F(n]]></description><category></category></item></channel></rss>