Boost
文章平均质量分 60
xiongping_
这个作者很懒,什么都没留下…
展开
-
boost asio框架结构
要用好它,就必须先了解它,而且不能停止于表面,必须深入到内部。而了解一件事物,先要了解它的框架,再了解它的细节。了解了框架,我们就有了提纲挈领的认识。关于 boost asio 框架结构,在其文档中,用了这样一张图来描述: 简单解释一下:这里由使用者(Initiator)启动一个异步操作(Asynchronous Operation),在启动异步的同时它要负转载 2016-03-10 17:25:33 · 633 阅读 · 0 评论 -
多线程并发-SEDA架构
http://surlymo.iteye.com/blog/2001529?utm_source=tuicool&utm_medium=referral一、传统并发模型的缺点基于线程的并发特点:每任务一线程直线式的编程使用资源昂高,context切换代价高,竞争锁昂贵太多线程可能导致吞吐量下降,响应时间暴涨。基于事转载 2016-11-24 17:15:27 · 839 阅读 · 0 评论 -
boost shared_lock unique_lock区别
shared_lock是read lock。被锁后仍允许其他线程执行同样被shared_lock的代码。这是一般做读操作时的需要。unique_lock是write lock。被锁后不允许其他线程执行被shared_lock或unique_lock的代码。在写操作时,一般用这个,可以同时限制unique_lock的写和share_lock的读。转载 2016-11-29 15:27:45 · 2009 阅读 · 0 评论 -
Boost 库 enable_shared_from_this 实现原理分析
使用情景:当类对象被 shared_ptr 管理时,需要在类自己定义的函数里把当前类对象作为参数传给其他函数时,这时需要传递一个 shared_ptr ,否则就不能保持 shared_ptr 管理这个类对象的语义(因为有一个 raw pointer 指向这个类对象,而 shared_ptr 对类对象的这个引用没有计数,很有可能 shared_ptr 已经把类对象资源释放了,而那个调用函数还在使转载 2016-06-07 16:41:47 · 567 阅读 · 0 评论 -
using namespace [ns]与 using [ns]区别
using namespace [ns]与 using [ns]区别using namespace [ns] 表示命名空间 [ns] 下所有的域变成可见的。如using namespace std;则代码中可以用cout如果是using [ns]的话,则只有ns是本身是可用的。对于ns下的域仍然必须使用 ns.xxx 如usi转载 2016-06-07 16:10:25 · 2065 阅读 · 1 评论 -
shared_ptr理解
shared_ptr是一种智能指针(smart pointer)。shared_ptr的作用有如同指针,但会记录有多少个shared_ptrs共同指向一个对象。shared_ptr是C++非常重要的一个防止内存泄露的设计作用:这便是所谓的引用计数(reference counting)。一旦最后一个这样的指针被销毁,也就是一旦某个对象的引用计数变为0,这个对象会被自动删原创 2016-05-20 09:17:10 · 1422 阅读 · 0 评论 -
boost定时器使用
2. 同步Timer本章介绍asio如何在定时器上进行阻塞等待(blocking wait). 实现,我们包含必要的头文件. 所有的asio类可以简单的通过include "asio.hpp"来调用.#include #include 此外,这个示例用到了timer,我们还要包含Boost.Date_Time的头文件来控制时间.转载 2016-03-25 11:06:29 · 7966 阅读 · 0 评论 -
发散聚合IO(scatter-gather I/O)技术
scatter/gather I/O 2013-05-30 09:53:02分类: LINUXscatter/gather方式是与block dma方式相对应的一种dma方式。 在dma传输数据的过程中,要求源物理地址和目标物理地址必须是连续的。但在有的计算机体系中,如IA,连续的存储器地址在物理上不一定是连续的,则dma传输要分成转载 2016-04-06 16:53:24 · 4609 阅读 · 0 评论 -
thread join和detach区别
在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是非分离状态的,这种情况原创 2016-03-24 10:01:26 · 4756 阅读 · 0 评论 -
Boost linux安装
前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库 apt-get install mpi-default-dev #安装mpi库apt-get install libicu-dev #支持正则表达式的UNICODE字符集 apt-get install python-dev #需要python的话转载 2016-02-26 10:02:03 · 531 阅读 · 0 评论 -
reactor模式和Proactor模式
最近在研究boost异步io,但是具体原理还是很混乱,现在理清一下思路,对普通函数和reactor模式和proactor模式进行比较普通函数处理机制:程序调用接口函数 -> 函数执行,程序等待 -> 函数执行完将结果和控制权返回给程序 ->程序继续执行下面具体来分析下reactor模式和proactor模式reactor模式(反应堆模式):reactor模式是事件驱动模式,应用转载 2016-04-05 11:19:33 · 577 阅读 · 0 评论 -
以boost::function和boost:bind取代虚函数
http://blog.csdn.net/solstice/article/details/3066268转载 2016-11-28 16:36:07 · 394 阅读 · 0 评论