摘要:
不同进制的数字 0b(binary), 0x (hex 16), 024(8) gob gob.Register, gob.NewEncoder, gob.Decode, gob.Encode interface type tI interface{} sync sync.WaitGroup, sy 阅读全文
摘要:
单例: 简单工厂: 观察者模式 Observer观察,Subject为被观察对象 Subject持有一系列的Observer的指针对象,当有数据需要推送时,逐次调用observer的update方法 可分为两类:推模式、拉模式 阅读全文
摘要:
./configure、make、make install 命令 ./configure –prefix=/usr 意思是将该软件安装在 /usr 下面 同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上–with、–enable、–without、– 阅读全文
摘要:
.vimrc 配置 https://www.ruanyifeng.com/blog/2018/09/vimrc.html 跳转 移动到函数名上,按下( ctrl + ] )便可以跳转到函数定义的地方 ctrl+i 向前跳到前几次光标位置 ctrl+o 向后跳到后几次光标位置 % 匹配括号移动 *# 阅读全文
摘要:
再谈epoll 原理 关键概念:eventpoll结构体(fd管理器)、ep_poll_callback(回调)、rdlist(双向链表)、epitem(epoll管理的结点) 每个epoll对象都有一个独立的eventpoll结构体,通过eventpoll管理存放epoll_ctl添加的事件集合, 阅读全文
摘要:
进程和线程 进程切换代价 直接代价:页表全局目录、TLB、内核堆栈、硬件上下文、执行调度器代码 间接代价:缓存失效(尤跨CPU调度)、cpu直接访存数量增加(差三个数量级) 进程间通信 管道、套接字、系统IPC(消息队列、信号量、信号、共享内存) 普通管道:只用于亲戚进程通信。半双工通信,具有固定读 阅读全文
摘要:
表设计的注意事项 首先就是表设计的三大范式:列字段具有原子性;每一列都与主键相关;每一列都与主键直接相关(减少数据冗余)。在设计的时候需要兼顾查询效率与数据冗余的衡量,绝不可以盲目为了遵循三大范式而设计过于复杂的表结构。 表的设计建议 根据需求选择引擎,如果是日志等报表类对存储需求较大可采用MyIS 阅读全文
摘要:
如何应对雪崩式请求? 雪崩式请求:当服务提供方由于某种原因挂掉导致服务调用方阻塞,最终引发系统的雪崩式崩溃称为雪崩。 通常可分为两种:缓存雪崩和应用雪崩 缓存雪崩:缓存服务器挂掉、突发流量导致局部缓存失效、热点缓存失效;常用三种解决方案:为不同的缓存设置不同的失效时间,避免缓存集中失效;使用锁机制控 阅读全文
摘要:
两个代码举例 回调函数: 定义一个普通函数作为处理函数 将处理函数地址注册给调用者 调用者在适当的时候通过函数指针调用处理函数 //c-style typedef void (*fooFunc1)(char*); //定义函数指针 void handle1(char* str){ /* func b 阅读全文
摘要:
优先级队列 template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue; 仿函数 #include <vecto 阅读全文