自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 服务器百万(C1000K)并发实现

目录什么是并发量?C10K, C1000K, C10M是什么意思服务端怎么区分客户端的socket?开始调试客户端代码服务端代码问题1问题2问题3file-max和open files的区别问题4问题5问题6优化连接速度 什么是并发量? 同时承载客户端的数量。承载是在连接的基础上200ms内能不能对数据库、网络带宽、内存操作、日志等进行操作返回给客户端。 C10K, C1000K, C10M是什么意思 首字母 C 是 Client 的缩写,C10K是处理1万客户端, C1000K是处理100万客户端, C1

2021-05-24 08:18:41 641 1

原创 websocket

一.websocket是什么 关系图 1.和HTTP一样基于TCP传输数据,都是应用层协议 2.HTML5提供的全双工通信的协议,一开始的握手需要HTTP请求完成。而HTTP是单向协议。 二.为什么要用websocket 因为HTTP协议是非持久化、单向的、只能由客户端发起的网络协议,每隔一段时间向服务器发送请求直到收到请求,通常HTTP的头部非常长,往往传输一点数据而要加上大量的头部信息。 websocket只需通过HTTP进行握手的动作,就可以持久传输 三.应用场景 即时通信、网页聊天、弹幕信息 四.

2021-05-23 12:05:31 434

原创 reactor原理

Reactor 释义“反应堆”,是一种事件驱动机制。 把epoll的事件处理流程逆置,把对应的回调函数注册到Reactor,当事件发生时,Reactor调用回调函数函数。 Reactor 模式是处理并发 I/O 比较常见的一种模式,用于同步 I/O,中心思想是: 1.先注册的相应 I/O 事件分发到对应的处理器中 2.将所有要处理的 I/O 事件注册到一个中心 I/O 多路复用器上,同时主线程/进程阻塞在多路复用器上; 3.一旦有 I/O 事件到来,多路复用器从事件处理器获取相应函数调用 接下来从epol

2021-05-23 12:02:46 502

原创 网络IO模型

目录网络五元组socket是什么?五种 IO 网络模型1.阻塞IO(blocking IO)TCP和UDP服务端代码TCP和UDP客户端代码(需要指定IP地址)2.非阻塞IO(**non-blocking IO**)TCP/UDP服务端代码3.异步 IO(Asynchronous I/O)4.信号驱动 IO(signal driven I/O, SIGIO)UDP服务端代码1.信号如何保存到进程里面?2.进程的信号集合如何保存在哪里?3.信号如何发送5.多路复用 IO (IO multiplexing )

2021-05-23 12:01:55 286

原创 KMP算法(看一遍解决)

目录简介暴力算法算法原理排序过程为什么要用KMP算法KMP算法算法原理排序过程 简介 KMP算法主要用于查找字符串 KMP 算法是 D.E.Knuth、J,H,Morris 和 V.R.Pratt 三位神人共同提出的,称之为 Knuth-Morria-Pratt 算法,简称 KMP 算法。该算法相对于 Brute-Force(暴力)算法有比较大的改进,主要是消除了主串指针的回溯,从而使算法效率有了某种程度的提高。 暴力算法 讲KMP算法之前,我们要先讲暴力算法 算法原理 暴力算法就是在一段文字中一个一个的匹

2021-01-27 12:46:59 1271 8

原创 快速排序

基本思想 1.从数列中取一个数做哨兵(默认第一个数) 2.从左到右找到一个比哨兵大的数放到右边,再从右到左找到一个比哨兵小的数放到左边 3.以哨兵为分界线,进行分组 4.每个分组接着1.2.3循环,直到每个分组只有一个数 排序过程 C语言实例 //第一个参数是数组,第二个参数的数组左指针,第三个参数是数组的右指针 int sort(int *data, int left, int right) { if (left >= right) return 0; //直到分组只有一个数,就是排序

2021-01-25 21:12:49 156 1

原创 冒泡排序及其优化

基本思想 冒泡排序是将一组数字从第一个数开始到第(m(数组长度)-k(循环次数)-1)数,一直与后一位数进行比较(从小到大排序),大的数放后一位,小的数放前一位,总共循环m(数组长度)-1次。 排序过程 C语言实例 //data是排序的数组,length是数组长度 int BubbleSort(int data[], int length) { int i, j; for(i = 0;i < length - 1;i ++) { //循环(length - 1)

2021-01-20 01:24:35 225 1

原创 shell(希尔) 排序

shell(希尔)排序是一种插入排序算法,它出自D.L.Shell,因此而得名。Shell排序又称作缩小增量排序。 shell(希尔)排序是面试出现次数较多且较难理解的,是插入排序的改进版,排序效率更快。 算法描述 1.先将一组数组分成m组(m为2的n次方,n为分组次数) 2.依次对每个分组对应的第1,2,3…元素形成插入排序 第一次排序 有6(元素总数/m)组插入排序: 23,53 64,71 87,57 12,97 9 ,24 16,79 第二次排序 有3(元素总数/m)组插入排序 23,12,53

2021-01-17 23:45:51 428 1

原创 插入排序

基本思想: 插入排序是将一组数字从第二个数开始,一直让该数字与前面的数依次进行比较(以从小到大排序为例),找到比它小的数,然后插入到该数的后面,一直循环直到遍历完整个数字串,就算完成了插入排序。 举例: 下图为一组数字 排序过程如下: 第二个数开始与前面的数依次进行对比,若前面的数比它大,则把它从数组中取出,把该数前面的数组依次向后移一位,直到找到该插入的位置,依次遍历整个数组 C语言实例: int i = 0,j = 0; for(i = 1;i < length;i ++) {

2021-01-17 20:54:01 174 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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