博客园  :: 首页  :: 联系 :: 管理

2013年5月9日

摘要: l select是什么select是UNIX下一种IO多路转接(IO Multiplexing)的技术。select系统调用是用来让我们的程序监视多个文件描述符的状态变化的。程序会停在select这里等待,直到被监视的文件描述符有一个或多个发生了状态改变。l select用法int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);Ø fd_set定义如下:typedefstructfd_set { u_int fd_count; //fd_set中 阅读全文

posted @ 2013-05-09 18:54 Apprentice89 阅读(406) 评论(0) 推荐(0) 编辑

2013年5月6日

摘要: l epoll是什么?epoll是当前在Linux下开发大规模并发网络程序的热门人选,epoll 在Linux2.6内核中正式引入,和select相似,都是I/O多路复用(IO multiplexing)技术。Linux下设计并发网络程序,常用的模型有:Ø Apache模型(Process Per Connection,简称PPC)Ø TPC(Thread PerConnection)模型Ø select模型和poll模型。Ø epoll模型l 常用模型的缺点n PPC/TPC模型这两种模型思想类似,就是让每一个到来的连接都有一个进程/线程来服务。这种模 阅读全文

posted @ 2013-05-06 17:15 Apprentice89 阅读(2463) 评论(0) 推荐(1) 编辑

2013年5月3日

摘要: 不带缓冲区的IO和标准IO库 l 不带缓冲区的IO(unbuffered IO): n open/read/write/close n 每次read/write都调用内核的一个系统调用。这种IO都是针对文件描述符的,当打开一个文件时,返回一个文件描述符,然后该文件描述符用于后续的IO操作。 l 标准IO库: ... 阅读全文

posted @ 2013-05-03 10:10 Apprentice89 阅读(413) 评论(0) 推荐(0) 编辑

2013年5月2日

摘要: 转载自:NoSQL 中的 CAP 原理 我们知道 CAP 原来是任何存储无法规避的定律,任何存储设备都无法在一致性(C),可用性(A)和分区可容忍性(P)三者上都做得非常好。这就是所谓的CAP定律。 这里推荐的这篇文章,从CAP原理讲起,然后将目前的各大 NoSQL 产品进行了分类,如下: 按功能分类: ... 阅读全文

posted @ 2013-05-02 14:10 Apprentice89 阅读(301) 评论(0) 推荐(0) 编辑

摘要: [转载]原文链接:http://my.oschina.net/juliashine/blog/88173NoSQL数据库的分布式算法本文另一地址请见NoSQL数据库的分布式算法本文译自Distributed Algorithms in NoSQL Databases系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性。这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去。尽管NoSQL运动并没有给分布式数据处理带来根本性的技术变革,但是依然引发了铺天盖地的关于各种协议和算法的研究以及实践。正是通过这些尝试逐渐总结出了一些行之有效的数据库构 阅读全文

posted @ 2013-05-02 10:33 Apprentice89 阅读(233) 评论(1) 推荐(0) 编辑

2013年4月17日

摘要: 链接:http://blog.csdn.net/lengyuhong/article/details/5979759NoSQL是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。 当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而 NoSQL 存储就是为了实现这个需求。Google 的BigTable与Amazon的Dynamo是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Fac. 阅读全文

posted @ 2013-04-17 10:08 Apprentice89 阅读(210) 评论(2) 推荐(0) 编辑

2013年3月27日

摘要: Chapter 7 站在对象模型的尖端这一章没怎么看到有意思的(以后再补)。TemplateTemplate的实例化行为:Point<float> p; 会发生实例化。Point<float> *pp; 不会发生实例化(指针确定占4B,类型只影响如何解释这块内存)。Point<float> &r; 会发生实例化(引用不能指向no object)。成员函数的只在被使用的时候才实例化(编译或链接时)。异常处理执行期类型识别 Runtime Type Identification RTTI 阅读全文

posted @ 2013-03-27 16:47 Apprentice89 阅读(231) 评论(0) 推荐(0) 编辑

2013年3月26日

摘要: Chapter 6 执行期语义 Runtime Semantics对象的构造和析构局部对象:{Point p;// p.Point::Point();...//p.Point::~Point();}对于switch和if-else等控制流,情况相对复杂一些。全局对象:C++保证全局对象在main函数第一次使用全局变量前将全局变量初始化好。在main结束前销毁。局部静态变量:局部静态变量的构造函数和析构函数都只能执行一次。编译器会设立一个临时变量,初始为0,当局部静态变量初始化后,该临时变量指向局部静态变量的地址。于是构造和析构都需要条件执行(该临时变量作为条件)。数组:new和delete运算 阅读全文

posted @ 2013-03-26 19:45 Apprentice89 阅读(255) 评论(0) 推荐(0) 编辑

摘要: Chapter 5 构造析构拷贝语义学纯虚函数:父类的纯虚函数仍然可以被定义并在子类中以静态方式调用。对于pure virtual destructor,类的设计者必须定义它,因为每个子类析构时会以静态方式调用其每一个virtual base class和上一层的base class的destructor(如果父类本身不为自己定义析构函数,链接时就找不到这个父类的析构实现,链接错误)。总之,不要把virtual destructor声明为pure。继承体系下的对象构造T object;这样的代码在T的构造函数调用时,伴随着的动作有什么:1. 记录在member init list中的data 阅读全文

posted @ 2013-03-26 17:06 Apprentice89 阅读(314) 评论(0) 推荐(0) 编辑

2013年3月25日

摘要: Chapter 4 Function语义学 The Semantics of FunctionMember的各种调用方式:nonstatic member functions:nonstatic member functions会被转化为nonmember形式。传入this指针,function中对nonstatic data member的存取都使用this来访问。virtual member function:如果normalize()是virtual member function,则ptr-> normalize()会变成(*ptr->vptr[1])(ptr); //1为 阅读全文

posted @ 2013-03-25 22:01 Apprentice89 阅读(337) 评论(0) 推荐(0) 编辑