<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sillyboytwo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sillyboytwo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sillyboytwo]]></copyright><item><title><![CDATA[使用Trae写一个贪吃蛇游戏]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146768062</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146768062</guid><author>sillyboytwo</author><pubDate>Sun, 30 Mar 2025 18:42:53 +0800</pubDate><description><![CDATA[现在的ai太厉害了。ai越厉害，越显得基础知识的重要性，不然ai写的bug你都看不懂hhhh。]]></description><category></category></item><item><title><![CDATA[面试：stl、操作系统等查漏补缺（四）]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146456724</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146456724</guid><author>sillyboytwo</author><pubDate>Sun, 23 Mar 2025 17:00:39 +0800</pubDate><description><![CDATA[僵尸进程：子进程终止，父进程还没有通过wait，waitpid系统调用读取他的退出状态的时候，这个子进程就会变成僵尸进程。特点：进程描述符（PID）还存在于系统进程表当中，但不占用内存或者cpu。内核还会保存他的状态码等信息，直到父进程读取。操作系统如何处理：操作系统会暂时保留僵尸进程的进程项，确保父进程能获得紫禁城的退出状态。长期僵尸进程的风险：如果长期占用有限的PID号，大量的僵尸进程可能会导致PID号枯竭，导致系统无法创建新的进程。]]></description><category></category></item><item><title><![CDATA[爬虫：模拟网页点击，爬取数据资料]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146456151</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146456151</guid><author>sillyboytwo</author><pubDate>Sun, 23 Mar 2025 14:51:01 +0800</pubDate><description><![CDATA[如果要写这个脚本的话可能需要去检查一下网页的资源。例如到某个下载的标签下左击鼠标，然后点击检查，对比右边的网页资源进行有选择填写。在这个脚本中，我采用模拟点击的方式，爬取某个网页上所有的下载资源。]]></description><category></category></item><item><title><![CDATA[如何优雅的接入deepseek做一个优雅的聊天机器人~]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146456094</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146456094</guid><author>sillyboytwo</author><pubDate>Sun, 23 Mar 2025 14:45:26 +0800</pubDate><description><![CDATA[后续打算加上一个爬虫模块，自动接入jira，自动爬取文件爬取报错日志了。并分析用户给入的文档是不是有重复的，如果没有重复的话，就自动将日志上报提交。写这个脚本是因为我想做个聊天机器人，能自动的帮我分析报错日志文档。并且分析文档出现的问题是否有问题。后续有时间再继续整理吧。]]></description><category></category></item><item><title><![CDATA[面试高频问答（三）：随便写写]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146407395</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146407395</guid><author>sillyboytwo</author><pubDate>Fri, 21 Mar 2025 00:43:53 +0800</pubDate><description><![CDATA[用途Redis Stream 是专为消息队列和事件流处理消息队列：实现生产-消费模型，支持多消费者组竞争或协同处理消息。事件溯源：按顺序记录事件（如用户操作、系统日志），支持回溯与审计。实时数据管道：传输实时数据流（如传感器数据、点击流），供下游系统实时处理。具体实现底层结构基数树（Radix Tree）：存储消息列表，每个节点包含多条消息，优化内存使用。消息ID：格式为<时间戳>-<序号>（如），全局有序且可自定义。消费者组（Consumer Groups）每个组独立跟踪消费进度，组内消费者通过。]]></description><category></category></item><item><title><![CDATA[面试场景题（二）]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146297796</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146297796</guid><author>sillyboytwo</author><pubDate>Sun, 16 Mar 2025 17:22:04 +0800</pubDate><description><![CDATA[Client→Server：ACK=1, seq=u+1, ack=w+1（Client进入TIME_WAIT）。Server→Client：ACK=1, seq=v, ack=u+1（Server进入CLOSE_WAIT）。：将事务拆分为多个本地事务，通过补偿机制回滚（如TCC模式：Try-Confirm/Cancel）。缓存空值（设置短过期时间）。：使用纠删码（Erasure Coding）或副本（如3副本）保证数据可靠性。：结合内部中间件（如TARS的流量控制）或开源工具（如Sentinel）。]]></description><category></category></item><item><title><![CDATA[CPPer面试高频问题（一）]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146269169</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146269169</guid><author>sillyboytwo</author><pubDate>Sat, 15 Mar 2025 00:40:17 +0800</pubDate><description><![CDATA[这个问题的话，无论是小米、腾讯、字节等等都问过我，而我答得只能说是一般般。这个问题我觉得是很重要的一个知识点，因为在实际的生产工作中，多线程的方式是必不可少的，要实现多任务的工作，这一点是必不可少的。在后面我可能考虑分析分析libuv、WebRTC（浅浅挖个坑）！！]]></description><category></category></item><item><title><![CDATA[从零开始的内核学习生活（二）：自己制作一个简易版Linux系统]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146108130</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146108130</guid><author>sillyboytwo</author><pubDate>Sat, 08 Mar 2025 17:40:04 +0800</pubDate><description><![CDATA[通过这一部分的实践，我们可以知道，如果我们要制作一个用户友好的ubuntu系统我们需要三大组件内核、交互界面、引导程序。通过引导程序我们可以找到对应的程序启动，引导程序启动完毕之后就会通过uuid找到系统的数据分区，完成整个系统的启动工作。（目前我就这么理解的，如果有不正确之处请斧正！后续我将继续学习ubuntu的系统引导程序，然后学习ubuntu内核的存储管理机制等。]]></description><category></category></item><item><title><![CDATA[从零开始的Linux内核学习生活（一）]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146048300</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146048300</guid><author>sillyboytwo</author><pubDate>Fri, 07 Mar 2025 22:04:27 +0800</pubDate><description><![CDATA[在Linux中，操作系统扮演着一个“大家长”的角色，负责管理和优化计算机的所有硬件资源，并通过一系列精心设计的接口（系统调用）让外部命令能够在内核态安全地执行。与此同时，为了确保用户能够方便、高效地使用这些资源，操作系统还提供了丰富的工具和环境。]]></description><category></category></item><item><title><![CDATA[面试：从零实现一个Mutli-reactor服务器——项目]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146051011</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146051011</guid><author>sillyboytwo</author><pubDate>Thu, 06 Mar 2025 16:44:51 +0800</pubDate><description><![CDATA[在高性能网络编程中，Reactor模式是一种常用的事件驱动架构模式，它允许服务器高效地处理大量并发连接。而Multi-Reactor模式是对经典Reactor模式的一种扩展和优化，通过将事件分派与事件处理分离，并利用多个Reactor实例来提高系统性能和可扩展性。在这种模式下，通常有一个主线程（或少量线程）负责监听新连接请求，并将这些连接分配给工作线程池中的不同Reactor实例进行处理。当然，这种模型也有明显缺点，连接建立、IO 事件读取以及事件分发完全有单线程处理；]]></description><category></category></item><item><title><![CDATA[面试：cpp高频问题总结]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146049104</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146049104</guid><author>sillyboytwo</author><pubDate>Wed, 05 Mar 2025 18:37:38 +0800</pubDate><description><![CDATA[记录目前我所见到的面试题目总结，不写答案上来，时不时考考自己是否能给出满分的答案？后续有增加我会继续补充。]]></description><category></category></item><item><title><![CDATA[面试：Epoll、Poll、Select学习记录]]></title><link>https://blog.youkuaiyun.com/sillyboytwo/article/details/146041464</link><guid>https://blog.youkuaiyun.com/sillyboytwo/article/details/146041464</guid><author>sillyboytwo</author><pubDate>Wed, 05 Mar 2025 17:09:47 +0800</pubDate><description><![CDATA[selectpoll和epoll都是I/O多路复用机制，它们允许程序监视多个文件描述符（fd），并在某个描述符就绪（即准备好进行读或写操作）时通知程序。尽管这三种机制都属于同步I/O的范畴——因为它们都需要程序在检测到事件后自行执行读写操作，这个过程通常是阻塞的——但它们之间存在显著的区别。同步 vs 异步I/O：值得注意的是，虽然这些机制都是同步I/O，意味着程序需要自己负责数据的读写，而异步I/O则不同，它不需要程序直接处理数据的读写，而是由操作系统自动完成从内核空间到用户空间的数据拷贝。]]></description><category></category></item></channel></rss>