摘要:
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存... 阅读全文
摘要:
信号量是一个计数器,用于多进程对共享数据对象的访问为了获得共享资源,进程需要执行下列操作:1)测试控制该资源的信号量2)若此信号量为正,则进程可以使用该资源,进程将信号量减1,表示它使用了一个资源单位3)若此信号量为0,则进程进入休眠状态,直至信号量大于0,进程被唤醒后,返回至第一步信号量的分类在学... 阅读全文
摘要:
三种IPC的共同特征1.标识符和键每个内核中的IPC结构都用一个非负整数的标识符加以引用。当一个IPC结构被创建,以后又被删除时,与这种结构相关的标识符连续加1,直至达到一个整型数的最大值,然后又回转到0标识符是IPC对象的内部名,为使多个合作进程能够在同一IPC对象上会合,需要提供一个外部名,即键... 阅读全文
摘要:
管道是UNIX系统IPC最古老形式,并且所有UNIX系统都提供此种通信机制。管道由下面两种局限性:1)历史上,它们是半双工的(即数据只能在一个方向上流动)2)它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,然后该进程调用fork,此后父、子进程之间就可应用该管道管道由调用pipe... 阅读全文
摘要:
当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内。一个对象、引用或指针的静态类型决定了该对象的哪些成员是可见的。即使静态类型与动态类型可能不一致,但我们使用哪些成员仍然是由静态类型决定的。基类指针(引用)即使指向派生类对象,仍然不能通过该指针(引用)来访问派生类中定义的成员,即使是publi... 阅读全文
摘要:
网上看到的关于C++函数的重载、覆盖和隐藏区别的回答,如下(其内容来源于C++面试宝典中一道题目):a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别... 阅读全文
摘要:
http://blog.csdn.net/sunquana/article/details/9153213一、 fill和fill_n函数的应用: fill函数的作用是:将一个区间的元素都赋予val值。 函数参数:fill(first,last,val);//first为容器的首迭代器,last为... 阅读全文