<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LSayhi的博客]]></title><description><![CDATA[github地址：https://github.com/LSayhi]]></description><link>https://blog.youkuaiyun.com/LSayhi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LSayhi]]></copyright><item><title><![CDATA[并发编程（七）：自定义线程池、ThreadPoolExecutor、任务调度线程池]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/115146938</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/115146938</guid><author>LSayhi</author><pubDate>Tue, 23 Mar 2021 22:19:03 +0800</pubDate><description><![CDATA[并发编程（七）：线程池、ThreadPoolExecutor、任务调度线程池
本文目录并发编程（七）：线程池、ThreadPoolExecutor、任务调度线程池一、自定义线程池1.实现步骤二、ThreadPoolExecutor1.线程池状态2.构造方法3.Executors类3.1 newFixedThreadPool3.2 newCachedThreadPool3.3 newSingleThreadExecutor4.提交任务5.关闭线程池三、异步模式：工作线程1.定义2.饥饿3.解决方案4. 预设线]]></description><category></category></item><item><title><![CDATA[并发编程（六）：悲观锁与乐观锁、atomic常见类、Unsafe对象]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/114992712</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/114992712</guid><author>LSayhi</author><pubDate>Thu, 18 Mar 2021 22:42:28 +0800</pubDate><description><![CDATA[并发编程（六）：锁与无锁、CAS与volatile、atomic常见类、ABA问题、Unsafe底层
本文目录并发编程（六）：锁与无锁、CAS与volatile、atomic常见类、ABA问题、Unsafe底层一、Java内存模型（Java Memory Model）1.定义2.JMM与JVM3.JMM与硬件内存架构的关系4.JMM的体现二、可见性1.小例子：不会退出的循环2.解决方法3.思考4.可见性与原子性对比三、有序性1.重排序（1） 编译器的重排（2）处理器的指令重排（3）内存系统的重排2.解决方法]]></description><category></category></item><item><title><![CDATA[并发编程（五）：Java内存模型、可见性、有序性、volatile原理、happen before原则]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/114645817</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/114645817</guid><author>LSayhi</author><pubDate>Wed, 10 Mar 2021 20:57:03 +0800</pubDate><description><![CDATA[并发编程（四）：wait/notify、保护性暂停、生产者消费者、活跃性
本文目录并发编程（四）：wait/notify、保护性暂停、生产者消费者、活跃性一、wait / notify1.为什么需要wait notify2.原理3.API4.wait 和 sleep不同点5.wait notify 改进上锁过程二、模式：保护性暂停（同步）1.介绍2.单任务版3.多任务版三、模式：生产者消费者（异步）1.介绍2.java实现一个线程间的生产者消费者模式四、提升并发度：加不同的锁1.小例子2.活锁3.饥饿4.死]]></description><category></category></item><item><title><![CDATA[并发编程（四）：wait/notify、保护性暂停、生产者消费者、活跃性]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/114400982</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/114400982</guid><author>LSayhi</author><pubDate>Fri, 05 Mar 2021 19:40:40 +0800</pubDate><description><![CDATA[并发编程（四）：wait/notify、保护性暂停、生产者消费者、活跃性
本文目录并发编程（四）：wait/notify、保护性暂停、生产者消费者、活跃性一、wait / notify1.为什么需要wait notify2.原理3.API4.wait 和 sleep不同点5.wait notify 改进上锁过程二、模式：保护性暂停（同步）1.介绍2.单任务版3.多任务版三、模式：生产者消费者（异步）1.介绍2.java实现一个线程间的生产者消费者模式四、提升并发度：加不同的锁1.小例子2.活锁3.饥饿4.死]]></description><category></category></item><item><title><![CDATA[并发编程（三）：线程安全问题分析、Synchronized使用、Synchronized底层原理及优化]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/113881023</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/113881023</guid><author>LSayhi</author><pubDate>Fri, 26 Feb 2021 17:08:39 +0800</pubDate><description><![CDATA[并发编程（三）：线程安全问题、Synschronized、线程安全分析、Synchronized原理
本文目录并发编程（三）：线程安全问题、Synschronized、线程安全分析、Synchronized原理一、线程安全问题1.Java小例子2.临界区3.竞态条件二、Synschronized使用1.加在对象上2.加在方法上3.线程八锁三、变量的线程安全分析1.成员变量和静态变量 分析2.局部变量 分析3.常见线程安全类3.1线程安全类的组合3.2不可变类的线程安全性4.例子：卖票问题、转账问题四、Syn]]></description><category></category></item><item><title><![CDATA[《剑指Offer》专题: 第六期 51-66]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/95097430</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/95097430</guid><author>LSayhi</author><pubDate>Mon, 08 Jul 2019 20:49:32 +0800</pubDate><description><![CDATA[《剑指Offer》专题: 第六期 51-66
大家好，又是好久没更新了，趁有时间把剑指Offer专题收尾工作完成，这里是《剑指Offer》第六期，本期更新的是最后的16题，一起来看看吧~
题目51：构建乘积数组
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。
"""
...]]></description><category></category></item><item><title><![CDATA[六张图带你了解 Redis 底层数据结构]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/92833706</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/92833706</guid><author>LSayhi</author><pubDate>Wed, 19 Jun 2019 15:41:39 +0800</pubDate><description><![CDATA[六张图带你了解 Redis 底层数据结构
大家好久不见！最近忙于写论文，有几期没更新了，趁今天无心学习，总结了一下 Redis的 底层数据结构，画了几张图与大家分享一下~
1.简单动态字符串
Redis没有直接C语言的传统字符串表示，而是构建了简单动态字符串来作为默认的字符串表示，其相比C字符串，具有许多优点，见下

2.链表
Reids自己构建了链表的实现，应用与列表键、发布与订阅、慢查询、监视...]]></description><category></category></item><item><title><![CDATA[《剑指Offer》专题: 第五期 41-50]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/90553239</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/90553239</guid><author>LSayhi</author><pubDate>Sat, 25 May 2019 23:55:03 +0800</pubDate><description><![CDATA[《剑指Offer》专题: 第五期 41-50
这里是《剑指Offer》专题系列第五期，一共十题，每题对应多种解法，一起来看看吧。
###正文
题目41：和为S的连续正数序列
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列...]]></description><category></category></item><item><title><![CDATA[《剑指Offer》专题：第四期 31-40]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/90344681</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/90344681</guid><author>LSayhi</author><pubDate>Sun, 19 May 2019 17:14:30 +0800</pubDate><description><![CDATA[《剑指Offer》专题：第四期 31-40
这里是《剑指Offer》专题第四期，本期内容为牛客网序第31-40题的解法与分析。涉及链表、数组、树等数据结构及其相关的算法，题目预览，见下图。

题目31：整数中1出现的次数
求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数？为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就...]]></description><category></category></item><item><title><![CDATA[《剑指Offer》专题: 第三期 21-30]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/90183917</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/90183917</guid><author>LSayhi</author><pubDate>Mon, 13 May 2019 23:55:05 +0800</pubDate><description><![CDATA[《剑指Offer》专题: 第三期 21-30
这里是《剑指Offer》专题系列第三期，一共十题，内容大约需要60分钟阅读，对应牛客网序号。如有任何疑问或者你有更好的方法或改进，欢迎#投稿#或者到github中提交PR.
投稿方式在公众号右下角，联系我们处。
题目21：栈的压入、弹出序列
输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不...]]></description><category></category></item><item><title><![CDATA[数据结构与算法（11）: 一网打尽partition算法及其拓展]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/89821907</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/89821907</guid><author>LSayhi</author><pubDate>Sun, 05 May 2019 00:28:30 +0800</pubDate><description><![CDATA[数据结构与算法（11）: 一网打尽partition算法及其拓展
Partition（划分）算法在快速排序、TopK问题、三色排序等问题上都能展现其巨大价值，本次文章讲述的是parition算法在这些算法问题上的应用以及partition算法是如何实现的，文章包括以下6个算法的实现：

1.partition算法的单指针实现；
2.partition算法的双指针实现；
3.快速排序 基于双指针pa...]]></description><category></category></item><item><title><![CDATA[《剑指Offer》专题: 第二期11~20]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/89606222</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/89606222</guid><author>LSayhi</author><pubDate>Sat, 27 Apr 2019 19:47:00 +0800</pubDate><description><![CDATA[《剑指Offer》专题: 第二期11~20
这里是《剑指Offer》系列文章第二篇，一共十题，内容大约需要90分钟阅读理解。记录书中所有题目的求解方法以及考察点，如果大家有任何疑问，欢迎后台留言，如果有更好的方法或者改进，欢迎投稿或者到github中PR。
注：这里的题目顺序是牛客网中《剑指Offer》默认序，和书中的略有区别。
题目11：二进制中1的个数
输入一个整数，输出该数二进制表示中1的个...]]></description><category></category></item><item><title><![CDATA[《剑指Offer》专题: 第一期 1~10]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/89433901</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/89433901</guid><author>LSayhi</author><pubDate>Sun, 21 Apr 2019 15:39:43 +0800</pubDate><description><![CDATA[《剑指Offer》专题: 第一期 1~10
话说东汉末年,群雄割据,盗贼蜂起。对不起，走远了，走远了。继上个系列（数据结构与算法）基础连载之后，这次我将推出《剑指Offer》系列文章，记录书中所有题目的求解方法以及考察点，如果大家有任何疑问，欢迎后台留言，如果有更好的方法或者改进，欢迎投稿或者到github中PR。
注：这里的题目顺序是牛客网中《剑指Offer》默认序，和书中的略有区别。
题目1：...]]></description><category></category></item><item><title><![CDATA[数据结构与算法（10）：排序相关]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/89074200</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/89074200</guid><author>LSayhi</author><pubDate>Sun, 07 Apr 2019 20:06:12 +0800</pubDate><description><![CDATA[数据结构与算法（10）：排序相关
本次内容主要是LeetCode sort tags下的题目的解法和思路，基础排序方法并没有在此记录，但可能会直接用在相关题目，以下是记录，题号与LeetCode对应。
题目1：922. Sort Array By Parity II
Given an array A of non-negative integers, half of the integers in...]]></description><category></category></item><item><title><![CDATA[数据结构与算法 （9）：滑动窗口算法]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/88978087</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/88978087</guid><author>LSayhi</author><pubDate>Tue, 02 Apr 2019 18:23:51 +0800</pubDate><description><![CDATA[数据结构与算法 （9）：滑动窗口算法
在算法题中，有一类题名曰：Sliding window（滑动窗口），其命名得益于其算法运行过程中，有一个显示或隐式存在的window(窗口).在解决某些问题上，可以起到降低时间复杂度为O(n)的效果。下面举两个例子来描述这种算法。
例子1：给定一组大小为n的整数数组，计算长度为m的子数组和的最大值
例如，数组为：array= {1,0,0,8,6,1,1}，m...]]></description><category></category></item><item><title><![CDATA[数据结构与算法 学习笔记（8）：字典、集合、哈希表]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/88937805</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/88937805</guid><author>LSayhi</author><pubDate>Sun, 31 Mar 2019 23:08:12 +0800</pubDate><description><![CDATA[数据结构与算法 学习笔记（8）：字典、集合、哈希表
本次文章记录的是和字典、集合、哈希表等数据结构相关的LeetCode算法题（题号与LeetCode对应），包括其构造和使用，针对每一题或一类题给出了相应的代码和思路分析，并有相应的注释。
题目1：1. Two Sum
Given an array of integers, return indices of the two numbers suc...]]></description><category></category></item><item><title><![CDATA[数据结构与算法 学习笔记（7）：二叉树和树]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/88783857</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/88783857</guid><author>LSayhi</author><pubDate>Sun, 24 Mar 2019 22:32:58 +0800</pubDate><description><![CDATA[数据结构与算法 学习笔记（7）：二叉树和树
本次文章主要记录了最近在LeetCode上刷的有关与二叉树和树的题目，主要涉及深度优先、广度优先、递归与非递归，并给出了算法和算法分析，如有错漏或更好的解法，欢迎到文末github中提交RP。
注：题号与LeetCode对应
题目1：100. Same Tree
Given two binary trees, write a function to ch...]]></description><category></category></item><item><title><![CDATA[数据结构与算法 学习笔记（4）：列表和链表]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/88619008</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/88619008</guid><author>LSayhi</author><pubDate>Sun, 17 Mar 2019 14:28:11 +0800</pubDate><description><![CDATA[数据结构与算法 学习笔记（4）：列表和链表
本次笔记主要记录Leetcode题集中，关于List系列的部分题目，思路和代码将在下文给出，如本文有错漏或你有更好的方法，欢迎到github中pull request.
题目1： 21.合并有序链表 21. Merge Two Sorted Lists
&quot;&quot;&quot;
Merge two sorted linked lists and return it as ...]]></description><category></category></item><item><title><![CDATA[数据结构与算法 学习笔记（6）: LeetCode 栈和队列 综合应用]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/88609114</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/88609114</guid><author>LSayhi</author><pubDate>Sun, 17 Mar 2019 00:01:11 +0800</pubDate><description><![CDATA[数据结构与算法 学习笔记（6）: 栈和队列 综合应用
本次笔记记录了近段时间刷LeetCode时遇到的关于栈和队列应用的一些问题，并下文中给出了相应的思路说明和代码，题目编号与LeetCode对应。如发现错漏或更好的方法，欢迎到文末的github中pull request。
题目1： 71. Simplify Path
Given an absolute path for a file (Unix...]]></description><category></category></item><item><title><![CDATA[数据结构与算法 学习笔记（5）：字符串]]></title><link>https://blog.youkuaiyun.com/LSayhi/article/details/88385957</link><guid>https://blog.youkuaiyun.com/LSayhi/article/details/88385957</guid><author>LSayhi</author><pubDate>Sun, 10 Mar 2019 23:08:04 +0800</pubDate><description><![CDATA[数据结构与算法 学习笔记（5）- 字符串
本次笔记记录了LeetCode中关于字符串的一些问题，并给出了相应的思路说明和代码。题目编号与LeetCode对应，方便查找。
题目1：LeetCode  13. Roman to Integer
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and ...]]></description><category></category></item></channel></rss>