<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JesonYang的IT之路]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yc7369</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yc7369]]></copyright><item><title><![CDATA[23种设计模式-7种结构模式]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/132416014</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/132416014</guid><author>yc7369</author><pubDate>Mon, 21 Aug 2023 20:24:12 +0800</pubDate><description><![CDATA[把类或对象结合在一起形成一个更大的结构。

装饰器模式：动态的给对象添加新的功能。

代理模式：为其它对象提供一个代理以便控制这个对象的访问。

桥接模式：将抽象部分和它的实现部分分离，使它们都可以独立的变化。

适配器模式：将一个类的方法接口转换成客户希望的另一个接口。

组合模式：将对象组合成树形结构以表示“部分-整体”的层次结构。

外观模式：对外提供一个统一的方法，来访问子系统中的一群接口。

享元模式：通过共享技术来有效的支持大量细粒度的对象。]]></description><category></category></item><item><title><![CDATA[epoll理解与源码实现]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/124648214</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/124648214</guid><author>yc7369</author><pubDate>Sun, 08 May 2022 15:06:34 +0800</pubDate><description><![CDATA[一、概念
epoll是一种I/O事件通知机制，是linux 内核实现IO多路复用的一个实现。
IO多路复用是指，在一个操作里同时监听多个输入输出源，在其中一个或多个输入输出源可用的时候返回，然后对其的进行读写操作。
IO多路复用，以后也会有详细讲解。
二、I/O
输入输出(input/output)的对象可以是文件(file)， 网络(socket)，进程之间的管道(pipe)。在linux系统中，都用文件描述符(fd)来表示。
三、事件
可读事件，当文件描述符关联的内核读缓冲区可读，则触发可读事件。(可读]]></description><category></category></item><item><title><![CDATA[nginx内存池源码分析]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/124597297</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/124597297</guid><author>yc7369</author><pubDate>Thu, 05 May 2022 22:37:02 +0800</pubDate><description><![CDATA[1、简述
很多开源项目都有内存池，不过大多数开源项目的内存池设计都并不一样
nginx会为每一个连接创建内存池，连接断开就会释放内存池。
nginx内存池内存的分配区分大小快，代码如下

2、数据结构以及接口ngx_palloc.h：

/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) Nginx, Inc.
 */


#ifndef _NGX_PALLOC_H_INCLUDED_
#define _NGX_PALLOC_H_INCLUDED_


#inc]]></description><category></category></item><item><title><![CDATA[redis存储结构]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/124573994</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/124573994</guid><author>yc7369</author><pubDate>Wed, 04 May 2022 17:20:20 +0800</pubDate><description><![CDATA[reids编码

redisObject
/* Objects encoding. Some kind of objects like Strings and Hashes can be
 * internally represented in multiple ways. The 'encoding' field of the object
 * is set to one of this fields for this object. */
#define OBJ_ENCODING_RAW 0     ]]></description><category></category></item><item><title><![CDATA[jemalloc原理概览]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/124366827</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/124366827</guid><author>yc7369</author><pubDate>Sat, 23 Apr 2022 17:16:15 +0800</pubDate><description><![CDATA[jemalloc在linux的世界里声名鹊起，并被移植到多个平台。后起之秀的tcmalloc性能与之相近，虽有谷歌这个牛爹，但因jemalloc专美在前，tcmalloc的使用范围还是略逊一筹。网络上关于jemalloc的各种解读很多，不再一一赘述，这里 挑一些关键点来分析。


 


 一、地址访问


 malloc和free的第一个参数都是内存地址，如何快速定位到该地址所属的内存块基址呢，在高频内存分配...]]></description><category></category></item><item><title><![CDATA[将博客搬至优快云]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/53400574</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/53400574</guid><author>yc7369</author><pubDate>Tue, 29 Nov 2016 21:33:45 +0800</pubDate><description><![CDATA[由于一些原因，本博客不再更新，博客迁移至
http://www.cnblogs.com/JesonYang/]]></description><category></category></item><item><title><![CDATA[非阻塞，et模型 epoll]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/53399280</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/53399280</guid><author>yc7369</author><pubDate>Tue, 29 Nov 2016 20:21:57 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 


#define MAX_EVENTS 100
#define MAX_BUFFER_SIZE 10


/*设置非阻塞*/
int setNonBlock(int fd)
{
	int old_f]]></description><category></category></item><item><title><![CDATA[C++虚表的实现原理（windows & linux上）]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/49966195</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/49966195</guid><author>yc7369</author><pubDate>Sat, 21 Nov 2015 20:21:27 +0800</pubDate><description><![CDATA[当大家被问到C++多态是怎么实现的时候，一般也就想到了虚函数吧，进一步也就是想到了与其关联的虚表指针，那我们就该想想这个虚表到底是怎么做到的呢。
/*author:  Jeson Yang
 date:	2015.11.21
 file:	****.cpp*/

#include 
using namespace std;

#define __stdcallclass CBase
{
publ]]></description><category></category></item><item><title><![CDATA[C++map遍历删除数据（删除被2整除的键值对）]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/49896033</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/49896033</guid><author>yc7369</author><pubDate>Wed, 18 Nov 2015 00:15:30 +0800</pubDate><description><![CDATA[C++遍历删除数据时 调用erase函数时]]></description><category></category></item><item><title><![CDATA[linux安装mysql步骤（unrecognized service错误）]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/48577009</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/48577009</guid><author>yc7369</author><pubDate>Sat, 19 Sep 2015 18:47:45 +0800</pubDate><description><![CDATA[由于之前项目 “冰火火” 做完啦，现在要投入到一个新的项目组去了。由于对linux还是不是太熟悉，安装时出了点小问题，写下来增加点印象吧。
系统的话我安装的跟新项目组一样的centos5/5
 
下面是具体步骤了：
查看本机有没有安装过，没有就直接安装喽
[root@localhost ~]# rpm -qa |grep mysql -i
[root@localhost ~]# rpm]]></description><category></category></item><item><title><![CDATA[C++四种强制类型转换]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/41970149</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/41970149</guid><author>yc7369</author><pubDate>Tue, 16 Dec 2014 22:44:37 +0800</pubDate><description><![CDATA[ANSI-C++标准定义了四个新的转换符：'reinterpret_cast', 'static_cast', 'dynamic_cast' 和 'const_cast'，目的在于控制类(class)之间的类型转换。
代码:


reinterpret_cast(expression)dynamic_cast(expression)static_cast(expression)const_]]></description><category></category></item><item><title><![CDATA[const在变量前后，函数后的含义（C++）]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/41967009</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/41967009</guid><author>yc7369</author><pubDate>Tue, 16 Dec 2014 21:16:52 +0800</pubDate><description><![CDATA[int me；
 const int * p1=&me；//p1可变，*p1不可变，此时不能用*p1来修改，但是p1可以转向
 int * const  p2=&me；//p2不可变，*p2可变，此时允许*p2来修改其值，但是p2不能转向。
 const int *const  p3=&me；//p3不可变，*p3也不可变，此时既不能用*p3来修改其值，也不能转向

 const 放在函]]></description><category></category></item><item><title><![CDATA[C++智能指针(设计和使用)]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/39351783</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/39351783</guid><author>yc7369</author><pubDate>Wed, 17 Sep 2014 23:22:44 +0800</pubDate><description><![CDATA[智能指针(smart pointer)是存储指向动态分配（堆）对象指针的类，用于生存期控制，能够确保自动正确的销毁动态分配的对象，防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联，引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时，初始化指针并将引用计数置为1；当对象作为另一对象的副本而创建时，拷贝构造函数拷]]></description><category></category></item><item><title><![CDATA[C++STL (vector,list,map)]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/39299039</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/39299039</guid><author>yc7369</author><pubDate>Mon, 15 Sep 2014 21:45:31 +0800</pubDate><description><![CDATA[//////////////////////////////////////////////////////////////////////////
///author:Jeson Yang
///Date:2014.9.15
//////////////////////////////////////////////////////////////////////////
#include 
#]]></description><category></category></item><item><title><![CDATA[LUA注释语法]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/39009613</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/39009613</guid><author>yc7369</author><pubDate>Tue, 02 Sep 2014 18:23:06 +0800</pubDate><description><![CDATA[服务器端代码已经完成，客户端正在优化，游戏不久将上线，最近没事做，老大要我开始学习project Anarchy了，里面代码是比较偏爱的C++，包含lua，暂没学过lua，看了下LUA代码，类似于Delphi，
以下是注释方式： 
单行注释： 采用“--”来对注释后面的字符进行注释,类似于 ISO C90之后的 C语言的注释"//"
多行注释：采用"--[[" "]]" 一对来注释，类似于C]]></description><category></category></item><item><title><![CDATA[mysql(windows or linux)忘记密码]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/38540567</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/38540567</guid><author>yc7369</author><pubDate>Wed, 13 Aug 2014 18:08:06 +0800</pubDate><description><![CDATA[提示：1045 access denied for user 'root'@'localhost' using password yes

连接数据库时候弹出这个，然后又忘记密码了请看
转载请注明出处http://blog.youkuaiyun.com/yc7369

曾经由于这个问题找了各种方法，各种行不通，最后将可用方法进行了记录，今日将其整理，以高来者
Linux：
先跳转到mysql文件]]></description><category></category></item><item><title><![CDATA[linux上MySQL修改密码的各种方法，yc整理]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/38538725</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/38538725</guid><author>yc7369</author><pubDate>Wed, 13 Aug 2014 16:26:37 +0800</pubDate><description><![CDATA[linux上MySQL修改密码的各种方法
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!
方法1： 用SET PASSWORD命令
　　mysql -uroot
　　mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2：]]></description><category></category></item><item><title><![CDATA[华为面试题(8分钟写出代码)]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/38477771</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/38477771</guid><author>yc7369</author><pubDate>Sun, 10 Aug 2014 23:30:42 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/yc7369  转载请注明出处JesonYang原创
今天又看见了这个题目，好像上次是李灾跟我说腾讯面他的时候问了这个问题的。想了半天，在网上也看了半天，发现一个不错的算法，先帖出来：^ ^
 /*


有两个数组a,b，大小都为n,数组元素的值任意，无序；
要求：通过交换a,b中的元素，使数组a元素的和与数组b元素的和之间的差最小
*/]]></description><category></category></item><item><title><![CDATA[Mac中使用svn进行项目管理]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/38312761</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/38312761</guid><author>yc7369</author><pubDate>Thu, 31 Jul 2014 10:15:34 +0800</pubDate><description><![CDATA[Mac中使用svn进行项目管理,借鉴了http://blog.youkuaiyun.com/q199109106q/article/details/8655204
以下方案多人亲测可用

转载请注明出处：http://blog.youkuaiyun.com/yc7369
在Windows环境中，我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下，由于Mac自带了svn的服务器端和客户端功能，所以我]]></description><category></category></item><item><title><![CDATA[C/C++解析 HTML]]></title><link>https://blog.youkuaiyun.com/yc7369/article/details/38065435</link><guid>https://blog.youkuaiyun.com/yc7369/article/details/38065435</guid><author>yc7369</author><pubDate>Wed, 23 Jul 2014 15:44:58 +0800</pubDate><description><![CDATA[首先我想感谢HMM7E，]]></description><category></category></item></channel></rss>