自定义博客皮肤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 489 1

原创 websocket

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

2021-05-23 12:05:31 186

原创 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 435

原创 网络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 157

原创 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 744 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 115 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 154 1

原创 shell(希尔) 排序

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

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

原创 插入排序

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

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

空空如也

空空如也

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

TA关注的人

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