M_jianjianjiao

纵有疾风起,人生不言弃

实现一个高并发内存池

高并内存池 项目描述: 实现在多核多线程的环境下,效率较高的处理高并发的内存池。 项目目的: 减少内存碎片 提高效率,使得在特定的情况下平均运行效率该高于malloc 解决在内存申请过程中的竞争问题 设计思路: 以定长哈希映射的空闲内存池为基础 使用三层缓存分配结构 三层的缓存结构 在内存...

2019-03-02 09:03:23

阅读数 119

评论数 0

一个基于TCP HTTP的具有文件共享功能的服务器

基于TCP、HTTP的文件共享服务器 服务器的基础架构 构建TCP服务器 对于文件的传输来说,我们必须要保证文件内容的准确性。所以在数据传输时我们选择保证数据可靠传输的TCP协议。 首先使用socket创建套接字进行对端口号与IP地址进行绑定。 然后监听来自客户端的请求。 连接任务的处理 对于...

2019-03-01 01:05:04

阅读数 63

评论数 0

mysql基本操作及使用

mysql基本使用: 连接到mysql 如果MySQL是使用RPM包安装的就使用服务的启动方式 启动mysql服务器 [root@bogon wens]# service mysqld start 如果是在启动状态需要重启 [root@bogon wens]# service mysqld re...

2019-02-26 22:55:12

阅读数 15

评论数 0

TCP TIME_WAIT状态

TCP的TIME_WAIT 状态 什么是TIME_WAIT状态 TCP的TIME_WAIT是指在四次挥手中,主动断开方 在收到对方发送的FIN后,向对方发送ACK后就会进入TIME_WAIT状态 处于TIME_WAIT状态时,端口被占用,无法创建新连接 只有等待2MSL(报文在网络中的最大生存时...

2019-01-22 07:48:11

阅读数 25

评论数 0

TCP的拥塞控制 粘包问题等

拥塞控制 TCP慢启动机制 在开始进行数据发送时,如果在一开始就发送大量的数据,可能此时网络上的数据比较多,比较拥堵。此时数据就会堵在网络上,使网络更加拥堵。 此时,可以通过慢启动机制,先发送少量的数据探测出当前网络的拥堵的情况,然后再决定发送多少数据。按多大速度传输数据。 拥塞窗口 ...

2019-01-22 07:46:02

阅读数 19

评论数 0

TCP报文格式详解

TCP协议 传输控制协议 TCP的特点: 面向连接: 使用TCP协议进行通信时,需要先建立连接 可靠传输: 具有确认应答机制,超时重传等机制保证数据的可靠传输 面向字节流的: 传输的数据是面向字节流的,没有长度的限制 关于连接的概念 在内核中有有一个结构体来描述连接TCB,...

2019-01-15 21:47:44

阅读数 24

评论数 0

UDP用户数据报协议

传输层 传输层负责将数据从发送端传输到接收端 TCP与UDP都属于传输层协议 端口号 通过IP与端口号可以在网络中确定一个唯一的进程 端口号可以标识一台主机上的唯一的一个进程 一个进程可以绑定多个端口号 可以通过源IP地址 目的IP地址 源端口...

2019-01-15 21:45:13

阅读数 35

评论数 0

c++中的智能指针

什么是智能指针 c++中没有垃圾回收机制,所以很容易在疏忽的情况下造成内存泄漏的问题,为了解决这种情况,所以有了RAII,通过智能指针对于资源进行自动的释放。 智能指针的原理 RAII是一种利用对象的生命周期来控制资源的一种技术。 在对象构造时获取资源,使之在对象的生命周期中对于资源的控制访问始...

2019-01-15 17:22:32

阅读数 20

评论数 0

HTTP协议详解

http协议 应用层协议:双方的一种约定,能够保证发送双方发送的数据都能被对方所能正确的解析。 URL: 统一资源定位符 定位资源所在的位置 互联网上的内一个文件都有一个唯一的位置 资源:对web资源的统称,包括图片文字等 平时所说的网址即为url url格式 &l...

2019-01-15 17:21:19

阅读数 18

评论数 0

cookie 与 sessionId

cookie 与 sesion http协议是无状态的,每次不会保存用户的状态信息 优点:http由于是无状态的,不必保存客户端的状态,所以可以减少服务器的CPU和内存的消耗 http协议十分简单 由于http协议是无状态的,无法得知上一次请求的状态信息,当有的需要登陆时,每次...

2019-01-15 17:20:33

阅读数 33

评论数 1

c++中的异常

c语言中传统错误处理方式的 终止程序 如使用assert来终止程序 缺陷: 难以接收,如果发生了内存错误程序就会终止如除0 返回错误码: 缺陷:需要对应错误码查找对应的错误,许多库会将错误码方到erron中,表示错误 setjmp longjmp int setjmp( jmp_b...

2019-01-15 17:19:35

阅读数 13

评论数 0

cin输入的类型不匹配造成的死循环 cin.clear() cin.ignore()函数

当使用cin输入时,如果想要输入的类型为int的,输入时输入成了字符,就会导致cin错误 #include <iostream> #include <set> using namespace std; ...

2019-01-13 14:49:05

阅读数 56

评论数 0

telnet 安装及使用

Centos7 telnet的安装及使用 检测是否安装telnet命令 rpm -qa telnet-server rpm -qa xinetd 安装telnet yum list |grep telnet yum -y install telnet-server.x86_64 yum -y i...

2019-01-13 14:47:48

阅读数 148

评论数 0

c++中的多态

c++中的多态 什么是多态 多态是指有多种形态,具体来说就是一种行为有多种不同的状态。当有不同的对象完成同一个行为时,会产生不同的结果。在c++的调用同一个基类函数,会根据不同的对象的类型来调用不同的成员函数。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。 多态的构成条件 在c+...

2019-01-03 14:46:12

阅读数 28

评论数 0

c++多态的原理 以及虚函数表详解

c++中多态的原理 要实现多态,必然在背后有自己的实现机制,如果不了解其背后的机制,就很难对其有更深的理解。 一个多态的例子 class Person{ public: virtual void Drink() { cout << &quo...

2019-01-03 14:44:56

阅读数 42

评论数 0

c++中的菱形继承与虚拟菱形继承

c++中的继承关系分为单继承和多继承 单继承:一个派生类只有一个基类 多继承:一个派生类不止有一个基类 在多继承的过程成容易造成二义性问题。 菱形继承是多继承中的一种复杂的情况。 菱形继承的有两个问题: 二义性:当使用A的数据时无法确定继承自B 还是 C 数据冗余:类D中会有两份类A的数据...

2018-12-26 13:14:08

阅读数 29

评论数 0

c++中的继承

面向对象的三大特性封装,继承,多态。 继承作为三大特性之一,在面向对象的设计的重要手段,它使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。继承呈现了面向对象程序设计的层次结构,继承是类设计层次的复用。 到底什么是继承? 如果B类继承于A类,那么B类中...

2018-12-25 23:47:32

阅读数 23

评论数 0

c++中的IO流

C++ 中的IO流 c语言中的输入输出 说到c++就不能不提c语言,在c语言中,依靠输入输出函数进行IO操作,在c语言中我们常用的函数有 scanf printf pusts gets putc getc getchar putchar fwrite fread ... 这些I...

2018-12-25 09:01:49

阅读数 41

评论数 0

c++ 类型萃取

类型萃取 类型萃取是基于c++中的模板特化来实现的,是对于模板特化的应用。 关于c++的模板特化 当我们写一个同用的拷贝函数时,我们可以使用mymcpy进行拷贝,但是mymcpy是一个浅拷贝,对于一些基本类型的拷贝效率很高。但是对于要深拷贝的类型来说就不适用了,对于深拷贝我们可以使用for循环的...

2018-12-23 18:08:51

阅读数 20

评论数 0

c++中模板的特化

关于模板的特化 关于c++函数的模板 函数的特化 使用模板时会遇到一些特殊的类型需要特殊处理,不能直接使用当前的模板函数,所以此时我们就需要对该类型特化出一个模板函数(就是写出一个模板函数专门给该类型使用) 当使用一个判断相等的模板函数时 template<class T&a...

2018-12-23 10:52:17

阅读数 15

评论数 0

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