
C/C++
文章平均质量分 79
feiqiangs
这个作者很懒,什么都没留下…
展开
-
c++互斥锁
摘要: 从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁,对互斥量进行加锁以后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥量.如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变量为运行状态的线程可以对互斥量加锁,其他线程将会看到互斥锁依然被锁住,只能回去再次等待它重新变为可用 在转载 2016-10-09 10:30:04 · 5326 阅读 · 0 评论 -
C语言实现多态
综述多态性是面向对象程序设计的一个重要特征,利用多态性可以设计和实现一个易于扩展的系统。顾名思义,多态的意思是多种形态,在C++程序设计中,多态指的是:具有不同功能的函数可以用同一个函数名,这样可以用一个函数名调用不同内容的函数。C++的多态分两种:静态多态性和动态多态性。1. C++中的函数重载和运算符重载实现的多态性就属于静态多态,在程序编译时系统就能决定调用的是哪个函数,因此原创 2016-09-23 01:53:38 · 14108 阅读 · 2 评论 -
C++中static的作用总结
主要有以下作用:【1】在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。 一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访问空间,因此访问到的是上次调转载 2016-09-23 11:31:04 · 393 阅读 · 0 评论 -
归并排序的递归和非递归实现
归并排序是一个时间复杂度为O(nlogn)的算法,它可以由递归和非递归两种方式实现。递归:#includeusing namespace std;void combine(int *nums,int l,int m,int r){ // cout<<"combine"<<l<<" "<<m<<" "<<r<<endl; int len = r-l+1; int *t原创 2016-10-27 18:44:21 · 715 阅读 · 0 评论 -
C++ I/O复用实现聊天室程序
今天学习了Linux 高性能服务器变成中的I/O复用,根据书上的内容,实现一个聊天室程序。1.客户端,客户端程序用poll同事坚挺用户输入和网络连接,并用splice 函数将用户输入直接定向到网络连接上发送,从而实现数据零拷贝。#define _GNU_SOURCE 1#include #include #include #include #include #include转载 2016-10-07 01:33:54 · 1532 阅读 · 4 评论 -
C++多进程信号量
问题:一个父进程一个子进程,要求父进程与子进程同步:必须子进程先执行,父进程后执行。解决办法:用信号量机制,一开始信号量初始化为0父进程:非临界区 p(s)临界区v(s)非临界区子进程:非临界区v(s)非临界区这样父进程执行临界区代码之前要先p操作,但是信号量是0,因此父进程被阻塞。直到子进程执行了v操作添加一个信号量,这时候父进程才原创 2016-10-07 22:09:37 · 3236 阅读 · 1 评论 -
dpdk 在VMware 中的安装部署
dpdk简介dpdk 是intel提供的提升数据面报文处理速率的应用程序开发包,它只要是利用一下几个特点优化报文处理过程,从而加快报文处理速度:1、用大页缓存支持来提高内存访问速率。2、利用UIO支持,提供应用空间下驱动程序的支持,也就是说驱动程序运行在用户空间的,减少了报文在用户空间和应用空间的多次拷贝。3、利用Linux 亲和性支持,把控制面的线程及各个数据面线程绑定到不同的c原创 2016-11-20 17:33:32 · 5424 阅读 · 4 评论