linux下aio异步读写详解与实例

1.为什么会有异步I/Oaio异步读写是在linux内核2.6之后才正式纳入其标准。之所以会增加此模块,是因为众所周知我们计算机CPU的执行速度远大于I/O读写的执行速度,如果我们用传统的阻塞式或非阻塞式来操作I/O的话,那么我们在同一个程序中(不用多线程或多进程)就不能同时操作俩个以上的文件I/...

2015-09-27 10:43:56

阅读数:11826

评论数:0

EPOLL在ET模式下会被触发多次么?

前几天和同学一起讨论EPOLLONESHOT的作用,它的功能是这样的:对于注册了EPOLLONESHOT事件的文件描述符,操作系统最多触发其上注册的包括可读,可写,错误中的一个,且只触发一次 刚一看感觉EPOLLONESHOT咋么就是ET模式相对于LT模式的区别,反复理解之后发现原来ET和ONES...

2015-09-22 12:27:43

阅读数:2074

评论数:3

linux服务器编程之高效事件处理模式

当前网络主的设计模式共有俩中,即Reactor模式和Proactor模式。同步I/O模型(select,poll,epoll等)用来实现Reactor模式,而异步(aio_read或aio_write等)用来实现Proactor模式1.Reactor模式Reactor模式的基本设计思路是主线程只负...

2015-09-27 13:45:42

阅读数:1577

评论数:0

C++封装mysql的基本API

最近在做数据库的实验,觉得c语言提供的关于mysql的API用起来好麻烦,于是就用C++进行了简单的封装,同时也算对mysql的基本API的一个学习吧代码如下#include<iostream> #include<string> #include<mysql/mysq...

2015-09-09 21:25:56

阅读数:3077

评论数:1

mysql的基本使用总结

最近要进行数据库实习,所以找点时间复习以下mysql的一些基本使用1.数据库的基本操作(1)展示mysql中的所有数据库 命令如下show databases;(2)创建一个新的数据库 假如我们要创建一个名为goods的数据库 具体命令如下create database goods; (3...

2015-09-08 17:36:47

阅读数:553

评论数:0

C++中tuple类型

tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的1.tuple的简单使用当我们希望将一些不同类型的数据和成单一...

2015-09-06 14:01:03

阅读数:6859

评论数:0

C++中的多态性

C++中的多态性是面向对象初封装性,继承性之外的又一大特性。多态性也是一种泛型,利用多态性我们可以用不变的代码产生不同的处理结果。也可以说其是”一个接口,多种方法”。1.虚函数的声明虚函数的声明只虚在类内的函数声明前加上virtual即可 实例如下class A { //fun1为普通函...

2015-09-06 11:59:13

阅读数:530

评论数:0

C++中派生类的访问控制

派生类访问其成员的权限会受到俩个因素的影响:一是在基类中该成员的访问说明符,二是派生类的派生列表中访问说明符在介绍各种继承方式之前,首先介绍以下不常见的protected说明符,我们可以把protected看作是一个public,private中和后的产物 protected的具体规则如下 (...

2015-09-06 10:11:25

阅读数:756

评论数:0

C++中的智能指针

上片博客为大家简单介绍了C++中开辟动态内存的方法,虽然动态内存有好多优点,但是如果我们使用不好的话有时候会给我们的程序带来灾难性的后果,今天这篇博客就为大家介绍一种安全的使用指针的方式智能指针1.智能指针的介绍新标准库为我们提供了俩种智能指针。智能指针的使用方法和常规指针基本相似,重要的区别是智...

2015-09-04 14:24:10

阅读数:787

评论数:0

C++中直接管理内存的方式

C++中定义了new和delete俩个运算符来直接管理内存1.动态分配单一对象(1)使用new动态分配和初始化对象由于动态分配的内存是无名的,所以new不能为其分配对象名,而是返回指向该对象的指针//分配一个int型的对象 int *pi = new int;默认情况下,动态分配的对象是默认初始化...

2015-09-04 09:17:08

阅读数:759

评论数:0

C++标准库bind函数

上篇博客在为大家介绍lambda是先由find_if函数引入问题,由于find_if函数的第三个参数所要求的可调用对象只能由一个谓词,所以我们最后选择的解决方法是用lambda表达式。那么此问题还有其他的解决方法么?本篇博客我就为大家带来新的解决方法bind函数1.bind函数的基本介绍bind函...

2015-09-03 21:33:26

阅读数:9169

评论数:0

C++中lambda表达式

在介绍lambda表达式之前,我想先介绍以下C++标准库所支持的传统谓词以及传统谓次的不足,而由此才引入的lambda表达式1.向算法中传递谓词谓词是个可调用的表达式,其返回结果是一个能作为条件的值。谓词分为一元和二元,一元的可调用对象只能有一个参数,二元只能有俩个参数 我们以一元谓词举例: ...

2015-09-03 18:59:42

阅读数:2045

评论数:0

C++中泛型算法

前面几篇博客简单的介绍了几种标准库容器,想必大家一定会感觉标准库中的各个容器的操作函数特别的少。的却标准库并没有给每一个容器单独定义很多操作函数,而是提供了一堆通用的函数来供其一起使用。1.泛型算法的概述C++中大多数算法都定义在头文件algorithm中,当然头文件numeric中定义了一组数值...

2015-09-03 13:45:59

阅读数:509

评论数:0

C++标准库set类型

set(集合)和map一样也属于关联容器,和map不同的是它只保存关键字,而且关键字会按升序排序且不重复,set的内部实现是用红黑树实现的。接下来就为大家介绍set的用法1.set对象的创建事例如下//尖括号中说明set保存关键字类型 set<int> s;2.向set中添加元素像其他...

2015-09-03 09:27:51

阅读数:2700

评论数:0

C++标准库map类型

map是一种关联容器,所谓的关联容器是指支持高效的关键字查找和访问。map中的元素为一些关键字-值(key-value)对,关键字起到索引值的作用,且map中的元素是按照关键字升序排序的。还有map是个映射,所以它的关键字和值是一一对应的。接下来就为大家介绍map的用法1.map的定义我们可以用如...

2015-09-01 22:12:19

阅读数:1937

评论数:0

C++标准库vector类型

vector属于顺序容器,所谓顺序容器,就是元素的顺序与元素的值无关,与元素加入容器的位置相对应。 对于vector可以将其理解为可变大小数组,支持快速随机访问,在尾部之外的位置插入删除可能会比较慢。了解完概念接下来就开始学习它的用法假设以下代码前面都包含vector头文件,并包含using n...

2015-09-01 18:55:04

阅读数:512

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭