- 博客(28)
- 收藏
- 关注
转载 4 连接接口设计
4 连接接口设计1 数据结构1.1 连接实体 connections_sstruct connections_s { event_t *read; event_t *write; ukey_pool_t *m_cpool;};说明:每个连接有一个内存块,并且连接分为读事件、写事件。2 函数2.1 conn_init函数签名:void conn...
2019-03-27 18:35:00
181
转载 5 事件接口设计
5 事件接口设计1 数据结构1.1 事件实体 event_sstruct event_s { int ev_fd; void (*ev_callback)(int, int, void *ev_arg); void *ev_arg; int ev_events; int ev_status;};说明:每个事件有一个描述符,并且有相应的回...
2019-03-27 18:35:00
124
转载 3 内存池设计
3 内存池设计3.1 设计思想:采用两个链表分别管理大块内存和小块内存当某次申请的内存大小大于内存池最大可能申请的到的内存空间时,直接使用malloc分配。小于最大分配内存空间,则按照首次适应分配,遍历当前所有的链表,如果所有链表都没有空间,则申请新的内存块,添加到链表尾。转载于:https://www.cnblogs.com/eemjwu/p/10609637.html...
2019-03-27 18:34:00
112
转载 2 程序逻辑
目录 2 程序逻辑 1 main 函数 2 具体流程模块函数 2.1 初始化全局结构体 2.2 创建监听套接字 2.3 初始化连接设置 2.4 监听端口属性设置 2.5 阻塞在 epoll_wait() 2....
2019-03-24 16:08:00
161
转载 1 关键数据结构
目录 1 关键数据结构 1. connection.h 1.1 manager_s 1.2 connections_s 2. event.h 2.1 event_s 3. memory_pool.h ...
2019-03-24 15:37:00
492
转载 2018-11-14
2018-11-14进程挂起挂起进程:暂时被淘汰出内存的进程机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的状态即就绪态进程挂起的原因有:终端用户的请求父进程的请求负荷调节的需要操作系统的需要进程太少...
2018-11-14 09:51:00
628
转载 2018-11-13
2018/11/13减少访问磁盘次数的措施既然要减少访问,那最理想的情况就是不访问呗,把所有的数据都丢进缓存中,将缓存变得大速度变快避免随意访问磁盘,于是就改良磁盘调度算法以上都是从调用情况的外部入手,指标也得治本,所以还要从自己的内部入手,将自己的目录管理的整齐,尽量不给人家添麻烦I/O设备独享设备:在一个用户作业未完成或退出之前,此设备不能分配...
2018-11-13 10:48:00
279
转载 2018-11-12
2018/11/12虚拟存储器的最大容量虚拟存储器的最大容量 = min(内存+外存,2^n)。n为计算机的地址总线位数。即:最大容量受内存和外存可利用的总容量限制,受计算机总线地址结构限制GPT和MBRhttp://blog.51cto.com/zhaoshilei/1912606是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始...
2018-11-12 10:21:00
60
转载 2018-11-11
2018/11/11内存管理常用区间和区间中的数据静态区(static):存放(初始化的)全局变量、静态变量和(未初始化的)全局变量和静态变量栈区(stack):存放局部变量和函数的形参。栈中的内存空间由编译器自动申请和释放堆获得的控件比栈更加灵活,但是容易产生内存碎片堆区(heap): 存放动态分配内存函数申请的变量。堆中的内存空间需要程序员手动释放...
2018-11-12 10:20:00
379
转载 2018-11-9
2018/11/9作业在执行中发生了缺页中断,经系统将该缺页调入内存后,应继续执行:被中断的指令在请求分页系统中,每当要访问的页面不存在时,便产生一缺页中断,请求OS将所缺之页调入内存。 缺页中断作为中断同样经历:保护CPU环境、分析中断原因、转入缺页中断,恢复CPU环境等步骤。缺页中断与其他中断的区别:缺页中断在执行期间产生和处理中断信号。缺页中断是在指令执...
2018-11-09 10:43:00
227
转载 2018-11-8
线程局部存储( Thread Local Storage , TLS ):用来将数据与一个正在执行的指定线程关联起来,线程内部的各个函数调用都能访问,但其它线程不能访问这些数据,所以线程局部存储不是进程间通信方式死锁避免之系统安全状态避免死锁的方法中,允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状...
2018-11-08 11:17:00
130
转载 2018-11-7
2018/11/7设某类资源有5个,由3个进程共享,每个进程最多可申请()个资源而使系统不会死锁。解如下:因为共有3个进程,5个资源,进程数小于资源数,则不会发生死锁的公式为①最多申请资源数=资源总数/进程数(可以整除的条件下)②最多申请资源数=(资源总数/进程数)+1(不可以整除的条件下)所以本题用②的计算方式,得出结果为5/3+1=2RAID磁盘阵...
2018-11-07 11:07:00
1023
转载 redis初识01
一、Redis简介1.1 Redis是什么REmote DIctionary Server(Redis) 是一个key-value存储系统。1.2 Redis优点性能极高 – Redis能支持超过 100K+ 每秒的读写频率。丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型...
2018-09-11 17:17:00
65
转载 redis面试总结
转载自:http://blog.csdn.net/guchuanyun111/article/category/6335900 (1)什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)(2)Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整...
2018-09-11 16:35:00
48
转载 leetcode 移动零
自己思路:/*第一次出现 0 *//*记录连续的 0 的个数 n *//*第二次出现 0 记录位置*//*将第二个0 之前的元素全部左移 n*//*返回第二步 *//*最后给所有剩下的位置赋值0*/实现中遇到的问题:1, 数组访问越界,&& 运算符顺序,首先不能越界2,记录 0 的个数,仔细斟酌位置网上的思路:这类数组原地删...
2018-09-07 22:52:00
62
转载 头文件,库文件,静态连接,动态链接的区别与联系
头文件与库文件:区别:1 头文件是文本文件,是可供阅读的;库文件是二进制文件,不可直接阅读。2 头文件在编译中使用;库文件在链接中使用。3 头文件中是函数或定义的声明,及少量内联函数的使用,一般不包含非静态函数实现;库文件中包含函数的实现。4 头文件是手动编写的,库文件是编译生成的。二者也有联系:1 虽然没有规定调用库函数必须引用头文件,但一般约定,当调用库函数的时候需要引用接口...
2018-09-06 20:33:00
457
转载 CMake常见语法
CMake常见语法前言每一个需要进行cmake操作的目录下面,都必须存在文件CMakeLists.txt 。cmake指令不区分大小写。变量使用${}方式取值,但是在 IF 控制语句中是直接使用变量名;指令(参数 1 参数 2…),参数使用括弧括起,参数之间使用空格或分号分开;通过TeamTalk源码学习Cmake语法文件目录:/TeamTalk-master/ser...
2018-09-06 17:29:00
102
转载 mongoDB在redhat下的安装
mongoDB在redhat下的安装mongoDB下载安装下载地址:http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.10.tgzroot用户依次执行以下操作tar -zxvf mongodb-linux-x86_64-2.6.10.tgzmv mongodb-linux-x86_64-2.6.10 /usr/l...
2018-08-07 22:58:00
125
转载 服务器平台搭建
服务器端平台搭建配置详情操作系统:Red Hat 6.3内存:2G处理器:i5 处理器核心总数:4硬盘:20GRedHat下安装MYSQL将相关的mysql rpm包上传到redhat上,下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads解压安装包得到7个.rpm文件:MySQL-client-5...
2018-08-06 10:37:00
503
转载 python ‘09’
09 数值前加零表示8进制 故09错误转载于:https://www.cnblogs.com/eemjwu/p/8684370.html
2018-03-31 21:45:00
95
转载 this指针
1,在成员函数后面加const修饰的不是函数,修饰的是隐藏的this指针2,同类之间无私处 异类之间有友元3,最好不要创建临时对象 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <iostream> 3 4 using namespace std; 5 6 cla...
2018-03-21 22:33:00
70
转载 new 和 delete 静态成员变量和成员函数
1,malloc free和new delete的区别 malloc 和 free 在对于普通变量是可以混合使用的,但是malloc和free是函数; new 和delete 是操作符,速度更快; Test *tp = (Test*)malloc(sizeof(Test)); //不会调用对象的构造函数 //p(10, 20); tp->...
2018-03-21 19:57:00
646
转载 构造函数初始化列表
**类内部的对象初始化顺序,与对象定义顺序一样,与构造函数参数列表顺序无关;析构顺序与构造相反**类中常亮成员变量,不能赋值,只能在初始化列表中初始化**构造函数中不能嵌套构造函数,给未初始化的参数赋值,因为那是产生一个匿名临时对象转载于:https://www.cnblogs.com/eemjwu/p/8618137.html...
2018-03-21 16:59:00
57
转载 默认拷贝构造函数和默认构造函数
如果普通构造函数,提供了一个显示的构造, 那么这个无参的默认构造就会被隐藏。 不会把拷贝构造函数隐藏掉;显示的提供一个拷贝构造的函数的时候,默认的拷贝构造函数就会被隐藏;只有提供一个显示的析构函数,才会将默认的析构 2 classTeacher { 3 public: 4 //有参数的构造函数 5 Teacher(int id, char ...
2018-03-21 16:25:00
268
转载 构造函数调用顺序示例
1,构造函数只能调用一次 析构函数调用顺序和,构造函数调用顺序相反,谁先被构造,最后被析构 函数中定义的局部类 会在函数执行完毕后,析构 1 void func(Test t) //Test t = test1::t1; //会调用局部变量t的拷贝构造函数 2 { 3 cout << "func begin..." <<...
2018-03-21 15:49:00
87
转载 初学者容易犯错--类参数初始化顺序
1 class Circle2 2 { 3 public: 4 void setR(double r) 5 { 6 m_r = r; 7 } 8 double getR(){ 9 return m_r;10 }11 12 double getArea()1...
2018-03-21 11:14:00
86
转载 visual studio 2017退出while(cin >> word)循环
1 while (cin >> string::word)2 {3 //do something4 if (cin.get() == '\n') //关键在这里,\n不能用双引号。。。 5 {6 break;7 }8 }...
2018-03-14 09:53:00
374
转载 第八章
练习8.11 istream& func(istream &is)2 {3 string buf;4 while (is >> buf)5 cout << buf << endl;6 is.clear();7 return is;8 }转载...
2018-03-12 20:27:00
55
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人