jackfeng

导航

01 2014 档案

再读C++线程池
摘要:最近仔细看了一下https://github.com/henkel/threadpool代码,总体感觉非常精巧,使用了boost库的bind function完成了线程池与业务端的完全解耦;所有的任务最终都会被封装成为function对象push进入队列。 这个库里面用了几个boost库里面的类,如recursive_mutex,reference_wrapper,thread等;有兴趣的可以研究一下。 首先来说threadpool的结构:![](http://images.cnitblog.com/blog/595935/201401/211620393409.jpg)之前在读... 阅读全文

posted @ 2014-01-21 16:20 jackfeng 阅读(342) 评论(0) 推荐(0)

x-forward-for详解
摘要:转载:http://www.360doc.com/content/14/0110/17/15459414_344165975.shtml如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的地方,本文要说的就是在通过CDN 后到达nginx做负载均衡时请求头中的X-Forwarded-For项到底发生了什么变化。下图为简单的web架构图:![](http://images.cnitblog.com/blog/595935/201401/101736138483.png)先来看一下X-Forwarded-For的定义:X-Forwarded-For:简称XFF头,它 阅读全文

posted @ 2014-01-10 17:37 jackfeng 阅读(15967) 评论(0) 推荐(3)

C++线程池
摘要:之前一直在找一个开源的C++线程池库,找了很久也没有找到一个好用的,后来项目需要,本想自己写一个,但是无意中在github上面找了一个采用boost库实现的threadpool,后来研究了一下源码,觉得非常好用。代码地址:https://github.com/henkel/threadpool1、代码风格:采用boost的风格,内部使用了大量的C++高级操作,包括了template,shared_ptr,traits;采用boost里面的bind,future的库函数实现多态。2、代码不到1000多行,实现很多功能,包括fifo,lifo,prifo等队列;3、支持wait的超时操作;4、.. 阅读全文

posted @ 2014-01-02 16:58 jackfeng 阅读(2324) 评论(0) 推荐(0)

STL 内存释放
摘要:C++ STL 中的map,vector等内存释放问题是一个很令开发者头痛的问题,关于stl内部的内存是自己内部实现的allocator,关于其内部的内存管理本文不做介绍,只是介绍一下STL内存释放的问题: 记得网上有人说采用Sawp函数可以完全清除STL分配的内存,下面使用一段代码来看看结果:首先测试vector:void TestVector() { sleep(10); cout test_vec; for (size_t i = 0; i tmp_vec; // 你觉得swap它会降低内存吗? test_vec.swap(tmp_vec); ... 阅读全文

posted @ 2014-01-02 08:32 jackfeng 阅读(3865) 评论(0) 推荐(0)