自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不亦快斋

非典型秃子的老窝

  • 博客(5)
  • 资源 (3)
  • 收藏
  • 关注

原创 宽窄接口分离的代码

templateclass wrap : public narraw{public:    virtual wide& toWide() = 0;    virtual const wide& toWide() const  = 0;protected:    ~warp(){}};templateclass rich : public wide, wrap{    virtual wide& t

2006-01-27 12:10:00 2015

原创 从每日构造到持续继承

    我总是向别人强调每日构造的重要性,也总是强调要自动化--自动化到一次双击,或者一个脚本,就能生成软件的安装包,甚至软件的部署!是的,对于需要部署的软件来说,安装包不是终点,每日构造成功的标志是的部署成功,并且冒烟测试通过。如果这一切任何一个步骤出了问题,那都意味这心跳骤停!     然而,我的这种宣传并没有起到很好的效果,很多人认为,每日构造,就是每日生成release版本的二进制文件,e

2006-01-16 12:55:00 2826

原创 COM,为什么我读不懂你的心

又遇到郁闷的事情:有一个线程,入口大致如下:th_main() {      while(conditon)          svc();}struct ComPair{    ComPair(){ ::CoInitializeEx(0, COINIT_MULTITHREADED);}    ~ComPair(){::CoUninitialize();}};svc(){ComPair com_p

2006-01-16 11:23:00 1900

原创 boost::condition 使用的注意点

进入互斥区的代码{   boost::mutex::scoped_lock guard(m_lock);   .....  m_condition.wait(m_lock);  ......}这里需要注意的是,当wait返回以后,guard已经失效了,不能够再安全地进行需要互斥的的操作了,为了争用操作的互斥,必须再次获得锁,类似:do{   boost::mutex::scoped_lock gu

2006-01-10 13:40:00 6178 2

原创 程序库随想

    我们总是希望有这样一个库:它能够让我们方便的完成某个任务,如果A库使用起来比B库简单那么一点点,我们就更愿意使用A。因此,我们也经常干这样的事情:把一个现有的库做一个薄封装,从而使用起来更适合当前的编程环境。   一般而言,简单的库总是更好的,然而这并不是一定的。我总是能听到一些程序员抱怨:为什么XX库的YY功能不能预先提供一个最简单的使用方式,非要程序员再手工做一些工作。我想,这有两个解

2006-01-10 10:35:00 2089 1

Communicating Sequential Processes

《Communicating Sequential Processes》C. A. R. Hoare

2015-10-10

CPU Cache Page-Coloring

陈怀临:本文通过读者们比较熟悉的妈咪和包厢场景,阐述了高端CPU和大Cache结构中的一个比较略微高深的工程话题--Cache Coloring。高端通信系统设计和实践中,对Cache和 性能的把握是至关重要的

2015-10-10

空空如也

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

TA关注的人

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