自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Redis内存淘汰机制

内存淘汰策略Redis作为内存缓存数据库,需要通过maxmemory参数限制最大内存使用,保证在缓存数据超出物理内存大小后依然可以正常服务。最新版本的Redis(6.0)支持8种淘汰策略:淘汰最久之前访问且设置超时的数据淘汰访问频率最低且设置超时的数据淘汰最近过期且设置超时的数据随机淘汰设置超时的数据淘汰最久之前访问的数据淘汰访问频率最低的数据随机淘汰数据不淘汰数据上述淘汰的源码宏定义如下(位于server.h)#define MAXMEMORY_VOLATILE_LRU ((0&

2020-07-12 15:56:09 272

原创 虚基类中的虚函数在部分虚函数表中为0

先上代码:#include <iostream>using namespace std;class B {public: virtual void fun0() { cout << "B" << endl; }};class B1 : public virtual B {public: virtual void fun1() { cou

2015-10-11 21:05:44 500

原创 小白鼠试毒酒的升级版

有9瓶酒,其中一瓶有毒,可以使用小白鼠进行试验,但是毒发需要8小时,问最少需要几只小白鼠才可以在16小时内知道哪瓶酒是毒酒。

2015-09-25 10:52:58 1884 2

原创 再谈线程池——友好地关闭线程池

线程池的关闭与退出

2015-09-21 11:15:40 2863

原创 线程池中使用条件变量和信号量的性能比较

面试的时候经常被问到互斥量,条件变量和信号量之间的问题。比如前几天华为面试就被问到互斥量和信号量的区别,说到互斥量也可以使用一个二值信号量来实现,什么情况是只能使用互斥量而不能使用信号量的。这个问题当时我只回答出一种情况,想了解详情的可自行百度。如面试官所说,信号量可以实现互斥量,大部分情况下也可以实现条件变量。甚至使用信号量的实现远比其他实现更容易理解。然而很多时候使用信号量替换条件变量的可能会降低系统性能

2015-09-20 20:46:09 5766 1

原创 移动语义之我见

C++11中最晦涩难懂的特性大约就是移动语义了。我最早看到的移动语义是和右值引用一起说的,更有甚者几乎把两者混为一谈。我并不是一个学院派,不敢在此深究二者定义上的区别,但我以为右值引用只是触发移动语义的必要条件而已。 首先谈一谈为什么引入了移动语义,移动语义较以前的拷贝有什么优点?我想先用两个例子来说明这个问题:class Echo {public: Echo() { std::cout

2015-09-11 15:20:06 1472

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-09-11 11:18:20 372

原创 sudo源码分析(二)

本篇主要分析sudo的信号处理函数。

2015-09-09 20:38:39 1379

原创 sudo源码分析(一)

首先申明,sudo命令虽然很常用,不过以前使用的时候从来都不带任何参数,后面直接跟着想要得到root权限的命令。知道最近研究了下sudo源码后才知道sudo居然也有这么多参数。当时看源码时也被它处理各种参数以及各种情况的代码所困扰,本文尽量避开这些枯燥的代码,清晰明白地分析sudo是如何提升程序的权限的。首先看一下main函数主要做了些什么事:intmain(int argc, char

2015-09-09 15:43:11 2871

原创 Nginx进程分析(worker_process篇)

Linux下进程的创建使用fork系统调用,

2015-09-08 20:08:03 21773

原创 填坑吧,模板君

正如上一篇博客所说,普通C++语法中的引用在模板中往往是无效的。除非像这样显式地说明模板参数是引用:

2015-09-08 17:05:12 398

原创 模板给引用挖了个坑

事情发生于我实习期间,当时的代码将bind的函数类传给线程,然后线程就会执行该函数类。现在我希望得到其中一个参数执行后的值,然而目前参数是传值的。我没细想就把这个参数改为传引用。结果我得到的值缺不是与其的值。上面的描述经过我简化了,真实的程序是多个线程,有些复杂,所以一开始没往模板参数推导的问题上想,结果白白浪费了我半天时间。下面步入正题:首先,传值和传引用虽然又本质的区别,但是两者的

2015-08-23 21:27:30 482

原创 2015.4.3微软在线笔试第二题

题目链接笔试期间在这道题上陷的太深,直到最后也没来得及提交,结束后重新理了理思路,很快就改好了,但是无法提交验证,因此发这篇博客留作纪念吧!下附代码:#include #include #include #include #include #include using namespace std;class Signal {public: Signal(int

2015-04-04 13:11:05 433

原创 ini文件中动态数组的格式和QSetting的读写

有时候我们需要保存动态数组到ini文件中。QSetting提供了很方便的接口给用户进行ini文件的读写,这一点我们稍后说,首先看看动态数组在ini文件中的结构。首先给个例子简单说明动态数组的保存格式:struct User { string userName; string password;};User users[3];如果我们希望在ini文

2015-03-20 16:43:57 7340

原创 Qt编译Oracle数据库驱动

方法已经在网上被转载了很多次了。当时看到的都是基于MinGW的Qt编译的驱动,但是我使用的是基于MSVC的Qt,虽然方法大差不差,不过也是有些不同的。编译环境:首先需要安装Oracle数据软件;安装Qt 4.8.5(VS2010)VS2010编译步骤:打开Qt 4.8.5 Command Prompt;(可以在开始菜单-所有程序-Qt4.8.5下

2015-03-13 11:39:59 1128

原创 Nginx进程分析(master_process篇)

首先看Nginx的主进程,主进程从main函数开始运行:int ngx_cdecl main(int argc, char *const *argv){    ngx_int_t         i;    ngx_log_t        *log;    ngx_cycle_t      *cycle, init_cycle;    ngx_core_conf_t  *

2014-11-22 01:56:38 3793

原创 栈上的内存对齐

C++ Primer Plus第四章10节第一个程序清单(4.24 choices.cpp)

2014-11-11 13:55:24 1132

原创 STL中的list/set/map等容器clear之后的内存占用

最近在知乎上看到一个问题

2014-11-09 20:05:11 10210

原创 递归与基于STL容器的迭代

最近做OJ题,容器用的多了就形成习惯了

2014-11-02 12:49:04 528

原创 vector<bool>中的代理机制与程序运行效率

事情起源于一道

2014-10-26 21:54:50 796

转载 no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory

原文地址:http://ubuntuforums.org/showthread.php?t=2214042

2014-05-03 11:07:23 3270

转载 VNC连接Ubuntu14.04 远程桌面出现“No supported authentication methods”错误

原文地址:http://forum.ubuntu.org.cn/viewtopic.php?t=458710

2014-04-29 19:20:01 5908

原创 CC2530串口中断

CC2530是Zigbee模块的微控制器芯片

2014-04-26 20:00:51 6726 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除