<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JayceSun的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JayceSun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JayceSun]]></copyright><item><title><![CDATA[briefly describe the classic sorting algorithm]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/135728096</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/135728096</guid><author>JayceSun</author><pubDate>Sun, 21 Jan 2024 16:52:17 +0800</pubDate><description><![CDATA[briefly describe the classic sorting algorithm。]]></description><category></category></item><item><title><![CDATA[负载均衡式在线oj]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127235747</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127235747</guid><author>JayceSun</author><pubDate>Mon, 12 Jun 2023 23:53:45 +0800</pubDate><description><![CDATA[负载均衡的在线oj系统。]]></description><category></category></item><item><title><![CDATA[MySQL篇【5】——约束]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127278064</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127278064</guid><author>JayceSun</author><pubDate>Fri, 09 Dec 2022 18:17:00 +0800</pubDate><description><![CDATA[在数据库的实际操作中难免会有一些操作不规范的地方，比方说在一张学生成绩表中，成绩的最高值为100，那么如果在这张表中如果出现了超过100分的成绩那显然是不合理的，因次需要添加约束来避免这些错误。]]></description><category></category></item><item><title><![CDATA[Linux多线程]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127912000</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127912000</guid><author>JayceSun</author><pubDate>Sat, 26 Nov 2022 16:17:17 +0800</pubDate><description><![CDATA[如果计算密集型线程的数量比可用的处理器多，那么可能会有较大的性能损失，这里的性能损失指的是增加了额外的同步和调度开销，而可用的资源不变。编写多线程需要更全面更深入的考虑，在一个多线程程序里，因时间分配上的细微偏差或者因共享了不该共享的变量而造成不良影响的可能性是很大的，换句话说线程之间是缺乏保护的。调用该函数的线程将挂起等待，直到id为thread的线程终止。返回的指针所指向的内存单元必须是全局的或者是用malloc分配的，不能在线程函数的栈上分配，因为当其他线程得到这个返回指针时线程函数已经退出了。]]></description><category></category></item><item><title><![CDATA[生产者消费者模型]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/128006882</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/128006882</guid><author>JayceSun</author><pubDate>Sat, 26 Nov 2022 15:52:08 +0800</pubDate><description><![CDATA[在多线程编程中阻塞队列是一种常用于实现生产者消费者模型的数据结构。其与普通的队列区别在于，当队列为空时，从队列获取元素的操作将会被阻塞，直到队列中被放入了元素；当队列满时，往队列里存放元素的操作也会被阻塞，直到有元素被从队列中取出（以上的操作都是基于不同的线程来说的，线程在对阻塞队列进程操作时会被阻塞）。来进行通讯，所以生产者生产完数据之后不用等待消费者处理，直接扔给阻塞队列，消费者不找生产者要数据，而是直接从阻塞队列里取，阻塞队列就相当于一个缓冲区，平衡了生产者和消费者的处理能力。]]></description><category></category></item><item><title><![CDATA[线程池介绍（普通与单例版本）]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/128044014</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/128044014</guid><author>JayceSun</author><pubDate>Sat, 26 Nov 2022 15:47:55 +0800</pubDate><description><![CDATA[线程过多会带来调度开销，进而影响缓存局部性和整体性能。而线程池维护着多个线程，等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能保证内核的充分利用。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。某些类，之应该具有一个对象（实例），就称之为单例。在很多服务器开发场景中，经常需要让服务器加载很多的数据到内存中，此时往往要用一个单例的类来管理这些数据。懒汉方式的核心思想是“延时加载”，从而优化服务器的启动速度。]]></description><category></category></item><item><title><![CDATA[Linux信号]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127836852</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127836852</guid><author>JayceSun</author><pubDate>Thu, 17 Nov 2022 20:38:49 +0800</pubDate><description><![CDATA[信号是进程之间事件异步通知的一种方式，属于软中断。SIGINT的默认处理动作是终止进程并且Core Dump首先解释一下什么是Core Dump。当一个进程要异常终止时，可以选择把进程的用户空间内存数据全部保存到磁盘上，文件名通常是core，这叫做Core Dump。进程异常终止通常是因为有Bug，比如非法内存访问导致段错误，事后可以用调试器检查core文件以查清错误原因，这叫做Post-cortem Debug（事后调试）。一个进程允许产生多大的core取决于进程的Resource Limit（这个信息保]]></description><category></category></item><item><title><![CDATA[站内搜索引擎]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/126252408</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/126252408</guid><author>JayceSun</author><pubDate>Mon, 17 Oct 2022 10:55:02 +0800</pubDate><description><![CDATA[正排索引：从文档ID找到文档内容目标文档分词（目的：方便建立倒排索引和查找）倒排索引：根据文档内容，分词整理出不重复的关键字，对应联系到文档ID的方案模拟一次查找到过程：
用户输入：苹果->倒排索引中查找->提取出文档ID(1,2)->根据正排索引找到文档内容->title+content(description)+url文档结果进行摘要->构建响应结果boost官网链接: https://www.boost.org/
进入官网点击download下载最新版文档


下载完成后进入项目目录，使用命令rz -]]></description><category></category></item><item><title><![CDATA[MySQL篇【4】——数据类型]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127194997</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127194997</guid><author>JayceSun</author><pubDate>Wed, 12 Oct 2022 10:43:58 +0800</pubDate><description><![CDATA[与C/C++等编程语言不同的是，数据库对数据类型的要求非常严格，数据库需要严格把控数据的准确性。]]></description><category></category></item><item><title><![CDATA[MySQL篇【3】——表的操作]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127084632</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127084632</guid><author>JayceSun</author><pubDate>Sat, 08 Oct 2022 18:52:58 +0800</pubDate><description><![CDATA[在项目实际开发中，经常修改某个表的结构，比如字段名字，字段大小，字段类型，表的字符集类型，表的存储引擎等。还有需求，添加字段，删除字段等等。6. 将name列修改为xingming。]]></description><category></category></item><item><title><![CDATA[MySQL篇【2】——库的操作]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/127063226</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/127063226</guid><author>JayceSun</author><pubDate>Wed, 28 Sep 2022 10:25:36 +0800</pubDate><description><![CDATA[可以知道当前有哪些用户连接到MySQL，如果查出某个用户不是正常登陆的，很有可能数据库被人入侵了，以后发现数据库比较慢时，可以用这个指令来查看数据库连接情况。]]></description><category></category></item><item><title><![CDATA[MySQL篇【1】——基本使用]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/126681164</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/126681164</guid><author>JayceSun</author><pubDate>Tue, 27 Sep 2022 19:30:46 +0800</pubDate><description><![CDATA[创建数据库表实际上就是在数据库路径下存入文件，打开刚刚的helloworld文件夹我们可以看到student表被建立。存储引擎：数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。事实上我们实际本地连接时不需要指定服务器IP和端口，直接输入以下命令连接即可。其中mysqld指的是mysql服务，而mysql指的是mysql客户端。分别输入下面两行命令查看mysqld和mysql的路径。输入以下命令进入数据存储路径，]]></description><category></category></item><item><title><![CDATA[传输层协议——UDP和TCP]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/126837386</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/126837386</guid><author>JayceSun</author><pubDate>Sun, 18 Sep 2022 12:37:37 +0800</pubDate><description><![CDATA[三次握手成功后，会在双方操作系统内为维护连接创建对应的数据结构，双方维护连接是有时间和空间成本的。]]></description><category></category></item><item><title><![CDATA[网络基础——HTTP协议及HTTPS]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/126312654</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/126312654</guid><author>JayceSun</author><pubDate>Wed, 14 Sep 2022 19:19:21 +0800</pubDate><description><![CDATA[HTTP（超文本传输协议）是一种非常好用的应用层协议。]]></description><category></category></item><item><title><![CDATA[位图，布隆过滤器的原理和实现]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/125547397</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/125547397</guid><author>JayceSun</author><pubDate>Sat, 03 Sep 2022 19:36:43 +0800</pubDate><description><![CDATA[比方说现在有40亿个未排序的无符号整数，请问如何判断一个数是否存在于这40亿个数中？这个问题就很适合用位图来解决，题目中说这些数据都是无符号整数而无符号整数最大能取到0xffffffff（约43亿），并且题目只要求我们判断该数据是否存在，因此我们只需要用一个比特位来标识该数值是否存在即可如上图，插入了1， 3， 7三个数据，我们只要把第1， 3， 7个比特位赋值1即可。]]></description><category></category></item><item><title><![CDATA[Linux多线程篇【5】——线程池]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/125354640</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/125354640</guid><author>JayceSun</author><pubDate>Sat, 03 Sep 2022 19:05:27 +0800</pubDate><description><![CDATA[设计模式可以看作是一种经验，根据一些经典的场景，给定了一些特定的解决方案，这些解决方案就是设计模式。]]></description><category></category></item><item><title><![CDATA[数据结构篇【5】——哈希表开散列实现（哈希桶）及封装]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/125486250</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/125486250</guid><author>JayceSun</author><pubDate>Tue, 28 Jun 2022 20:08:23 +0800</pubDate><description><![CDATA[在上一篇文章中我们解决哈希冲突的方法是闭散列，在本篇介绍另一种方法——开散列。在闭散列中如果我们碰到哈希冲突的时候我们采用的办法是向后查找，并占用另一个空余的位置，这种方法不好的地方就在于在不断的占用中哈希表的位置看起来好像没什么逻辑，而且容易产生“堆积”问题，导致查找元素的效率较低，另外我们始终要保证已经占用的位置不多于哈希表总大小的70%，因此还会造成较大的空间浪费。
开散列又叫链地址发（开链法、哈希桶），首先对关键码集合用散列函数计算散列地址，具有相同地址的关键码归于同一子集合，每一个子集合称为一个桶]]></description><category></category></item><item><title><![CDATA[数据结构篇【4】——哈希（散列）线性探测实现]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/125434261</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/125434261</guid><author>JayceSun</author><pubDate>Mon, 27 Jun 2022 14:08:52 +0800</pubDate><description><![CDATA[构造一种存储结构，通过某种函数（hashFunc）使元素的存储位置与它的关键码之间能够建立一一映射的关系，那么在查找时通过该函数可以很快找到该元素。最理想的情况是可以不经过任何比较，一次直接从表中得到要搜索的元素。对于两个数据元素的关键字ki和kj(i != j),有ki != kj,但有Hash(ki) == Hash(kj)，即：不同关键字通过相同哈希函数计算出相同的哈希地址，这种现象称为哈希冲突或哈希碰撞。
把具有不同关键码而具有相同哈希地址的数据元素称为“同义词”。引起哈希冲突的一个原因可能是：哈希]]></description><category></category></item><item><title><![CDATA[Linux多进程篇【4】——POSIX信号量]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/125292065</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/125292065</guid><author>JayceSun</author><pubDate>Sun, 19 Jun 2022 09:19:32 +0800</pubDate><description><![CDATA[既然说信号量可以看作是一个计数器，那么我们先来模拟看看信号量应该是怎样工作的。]]></description><category></category></item><item><title><![CDATA[Linux多进程篇【3】——同步]]></title><link>https://blog.youkuaiyun.com/JayceSun/article/details/125249857</link><guid>https://blog.youkuaiyun.com/JayceSun/article/details/125249857</guid><author>JayceSun</author><pubDate>Tue, 14 Jun 2022 20:41:35 +0800</pubDate><description><![CDATA[在使用互斥时我们会发现一个问题，如果一个线程频繁地使用互斥锁来占用临界资源，会严重影响别的线程的效率，而同步就是在保证数据安全的情况下让多线程的执行具有一定的顺序性，以此提高运行效率。创建条件变量跟创建互斥锁类似，在全局定义一个pthread_cond_t类型的变量即可。

静态初始化


销毁

等待条件满足

唤醒等待

案例
在这个例子共创建了两类进程，第一类是一个控制进程(master)，第二类是三个工作进程(worker)，master每秒释放一次一个信号让其中一个worker工作
从运行情况中我]]></description><category></category></item></channel></rss>