0%

libevent简介

libevent是一个开源的高性能I/O框架,是基于Reactor模式实现的。什么是Reactior模式,简单地说,Reactor一般包括以下几个组件,句柄(Handle)事件多路分发器(EventDemultiplexer)事件处理器(EventHandler)

阅读全文 »

线程安全

多线程并行执行的程序中,对共享数据的访问或修改可能由于执行顺序的不确定,导致运行结果与代码设计者的原意相违背。为了保证代码原有的逻辑,在多线程的情况下可能需要用到一些同步或互斥的操作来保证线程安全。人的思考方式是单线程的,所以有时候看着很合理的代码逻辑,在多线程环境却出bug。

阅读全文 »

宇宙和生命,人类与爱,这一切都值得我们去慢慢思考。

如果有人一定要追问我结果如何
我恐怕就无法回答。

匍匐于泥泞之间
我依然要问你 为什么
为什么时光它永远立于不败之地

阅读全文 »

内存泄露是我认为在C或C++项目上最难处理的一个bug,由于没有明显的现象,可能要到某一天,服务器内存耗尽后,申请不到新的内存,程序报错才能发现程序有内存泄露的现象。如果没有足够的监控或者维测的统计,很难发现内存泄露的原因。

阅读全文 »

在实现业务代码的时候,总不可避免地要动态申请内存。在C语言中,没有自动回收内存的机制,所以必须手动释放内存。如果没有正确释放内存,就会出现内存泄露。如果是在服务器端的程序出现内存泄露,那必定会导致服务不稳定,长期运行总会耗尽内存而导致无法新申请出内存,影响业务。

阅读全文 »

简介

在商业公司的项目管理里,持续集成(Continuous Integration,简称CI)是必须的一环。刚开始工作的时候,也不太懂持续集成是什么意思,慢慢接触到项目,也有了一定的理解。简单来说CI就持续编译项目源码,进行测试,并部署。每次项目组的成员提交的代码,都要走一遍编译,测试,部署的流程。而且这个过程全自动化完成。

阅读全文 »

互联网上面有太多的资料和资源可以获取,获取信息本身不难,如何有效地利用它们是一件困难的事情。我写这个博客是希望自己能把从网络上学习到的知识,经过自己的理解,用自己的逻辑思维方式再次表达出来,同时写作本身又是加深知识理解的一种方式。

阅读全文 »