自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OC控件--UITableView

设计思想:通过代理的方法对它进行回调设置UITableView有两种风格:UITableViewStylePlain 默认平铺的风格UITableViewStyleGrouped 默认分组的风格在初始化控件的时候可以设置,如下:UITableView *tableview=[[UITableView alloc]initWithFrame:self.view.fra...

2019-07-16 16:01:05 315

原创 ET和LT的区别

概念ET(边沿触发)和LT(电平触发)是 epoll对文件描述符的两种操作。LT的工作模式:当文件描述符上的事件就绪后,如果事务没有处理完成或者没有处理,那么下一次epoll会提醒应用程序。ET的工作模式:当文件描述符上的事件就绪后,如果事务没有处理完成或者没有处理,那么下一次epoll则不会提醒应用程序,这就要求我们的应用程序在收到一次提醒后,必须将当下的数据处理完成。内核实现...

2019-01-30 19:37:06 8281 12

原创 二分查找与二分排序(直接插入排序的优化)

二分查找二分查找我们又叫它为折半查找法,二分查找的条件是查找对象必须是顺序表,并且表必须有序,我们以数组为例,模拟一下查找的过程:假设这是我们要查找的数组,查找的数据为78我们需要三个标志left,right,mid分别记录数组的左端,右端,和中间位置,然后我们将要查找的数据与mid(mid为lefi与right的中间位置)所指向的数据进行比较,会出现三种情况,如果查找数据大于mi...

2019-01-08 12:07:19 654

原创 I/O复用(三)——epoll

在说epoll 之前,我们先来吐槽一下poll和select,这两个,每次调用都要重复传入文件描述符集或者事件集,而且返回的是所有的文件描述符还需要我们去轮询查找哪一个就绪,很累机器啊,所以我们的epoll就千呼万唤始出来了,相比于poll和epoll在这一方面的缺陷,epoll要优秀很多啊。epoll的实现是依靠一组函数来实现,它吧用户关心的文件描述符上的事件放在内核里的一个事件表中,就省去...

2018-12-13 21:09:38 213 1

原创 I/O复用(二)——poll

之前我们介绍select 的时候,我们已经说过了I/O复用的相关概念,话不多说,今天我们就直接来看I/O复用的另一个系统调用:poll。poll系统调用和select相似,也是在指定的时间内轮询一定量的文件描述符,以测试其中是否有就绪事件。原型如下:(1)fd参数是一个polled结构体类型的数组,原型如下: event成员告知poll监听哪些事件,也就是用户感兴趣的事件,是一...

2018-12-13 18:05:48 181

原创 I/O复用(一)——Select

为什么要有I/O复用         从多进程多线程到进程池线程池,尽管我们处理事件的效率越来越高,但是却有一个问题,一直都没有解决,那就是,当服务器分配了一个线程或进程为某一个客户端服务时,该进程/线程就相当于与这个客户端绑定了,除非客户端断开连接,否则不管有没有请求事件,这个线程/进程都只能为这个客户端处理事件,我们知道,系统允许我们创建的线程/进程是有限的,这样其实会造成资源的浪费,所以...

2018-12-13 16:16:39 214

原创 进程池与线程池

在Linux的下,当我们启动HTTP服务后,其实系统就为我们提供了一个线程池,我们的请求服务也是由线程池里面的线程来处理的。我们先来看一下HTTP启动后我的系统给我分配的线程:查看httpq启动后所有的进程使用的命令:ps -ef | grep httpd可以看到由根创建出了八个线程为我们服务,这是http启动后自己创建的,那么我们要如何来模拟设计线程池呢,我们继续往下看。设计...

2018-12-13 11:58:39 336

原创 HTTP通信

HTTP的通信可以分为两部分:HTTP请求和HTTP应答.HTTP通信过程默认使用的是TCP协议,TCP连接从建立到关闭的过程中,客户端(浏览器)仅给服务器发送了一个HTTP请求,而服务器则会给客户端返回一个HTTP应答。我们主要分析一下HTTP请求报文段和HTTP应答报文段的内容。HTTP请求这是HTTP的请求内容:第一部分请求行请求行,格式:“请求方式+”“”+ URL +...

2018-12-07 18:29:21 1276

原创 HTTP与HTTPS的区别

概念        HTTP:超文本传输​​协议,用户浏览网页时在浏览器地址栏中输入的URL(统一资源定位符)前面都是以“http://”开始的。HTTP定义了信息如何被格式化,如何被传输,以及在各种命令下服务器和浏览器所采取的响应。但是HTTP协议以明文方式发送内容,并不提供任何方式的数据加密,如果攻击者截取了网页浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议...

2018-11-27 23:28:17 136

原创 shell项目简报

shell项目简报一 项目目的shell作为命令语言,shell项目的目的在于交互式地解释和执行用户输入的命令。二 项目需求分析项目主要分为两大部分:第一部分: 命令的获取分析命令解析器功能在于接受并解析用户输入的命令,运行方式为死循环模式,直至用户输入exit之后退出。运行过程主要由四步实现。1.参考于linux运行界面,输出提示符。2.接受用户输入的命令。3...

2018-11-13 20:14:37 292

原创 进程与线程之间的区别

我们在讨论进程与线程的区别之前,首先我们要清楚进程与线程的概念。 什么是进程?进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位),是指令+数据+资源的一个集合。进程可以理解为程序的一次实例化,应用程序一旦执行,就是一个进程。每个进程都有自己独立的地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。什么是线程?线程是进...

2018-10-28 17:18:45 322

原创 字符串匹配BF算法

     BF算法又称暴风算法,是相较于KMP的笨办法,假设母串s长度为m,子串p长度为n,那么该算法在最坏的情况下的时间复杂度为O(m*n),相较于KMP算法的O(m+n),在时间复杂度上稍逊一筹,但是与KMP算法相比,BF的算法思想更容易理解,程序编写也更为容易。其算法思想是用两个标志i,j分别记录两个字符串的下标,我们用i表示母串s的下标,j表示子串J的下标,然后从母串的第一个字符与子串...

2018-09-29 09:50:58 3771

原创 C++替代宏的功能实现的方法

在C++中,对于替代宏的功能实现,我们通常见到的有三种方法:1.常量用const来替代实现类似于#define A 10,是在程序的预编译期将所有的A用常量10替换掉,如果我们不想使用宏,就可以用const int A=10替换之前的用法,这一步将会在程序编译过程中将所有的A置为常量10,以此达到我们想要的目的。2.有参宏函数用inline(内联函数)来替换实现宏其实是在预编译时期进行了代...

2018-09-05 09:12:59 3675

原创 僵尸进程的处理办法

僵尸进程(僵死进程)是指一个进程主体结束,但是该进程的PCB依旧存在的情况或者在多进程编程中,父进程未结束但是子进程已经结束父进程没有对子进程进行回收。 僵尸进程存在的意义在于进程结束后,进程的退出状态需要保存到PCB结构中,方便父进程获取子进程的退出状态。进程真正结束的标志:1、进程主体退出。2、父进程获取子进程的退出状态之后,子进程的PCB释放。那么我们为什么要处理掉僵尸进程呢,这是因...

2018-08-09 19:33:02 489

原创 浅析静态库和动态库的区别及linux下二者的生成和使用

从编程的角度来讲,库文件通常被分为静态库文件和动态库文件,其目的在于将部分代码封装在一起编译后供自己或他人调用,好处在于编译后的库文件看不到源代码,可保密,同时不会因为不小心修改了函数而出问题,便于维护。但是二者之间存在一定的差异。    1.静态库:    静态库在Windows操作系统中是.lib文件,在Linux下是.a文件,相当于中间(.o)文件的集合,是在程序链接时使用,讲静态库中的...

2018-08-03 13:14:17 1111

原创 将float型数据转化成int型

  在将float型数据转化成int数据前,首先我们要了解float型数据在内存中的存储方式,float类型在内存中占4个字节32个比特位,如下:  0 00000000 000000000000000000000001.符号位    其中最左边的为符号位,0为正,1为负。2.指数    接下来一共8位,也用二进制来表示,系统默认偏移量计算值为127,也就是说,如果你的指数是4,那么内存...

2018-07-22 15:41:57 26801 1

空空如也

空空如也

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

TA关注的人

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