自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

原创 学习Nginx看这篇就够了

0. NGINX的优点响应速度快单次请求响应快,高并发请求响应速度快高扩展性低耦合的模块设计框架使得可以扩展大量的第三方模块高可靠性每个worker进程相对独立master进程在一个worker进程挂掉后,会快速启动新worker进程提供服务低内存消耗1w个非活跃的http keepalive连接仅消耗2.5M的内存单机支持10W+的并发连接支持热部署master管理进程与worker进程分离设计,使得nginx能够支持热部署功能支持free bsd

2021-06-14 22:18:08 522

原创 详解网络协议栈--TCP协议

TCP 协议TCP协议是一种可靠的、面向连接的字节流服务,源主机在传送数据前需要先和目标主机建立连接。然后在此连接上被编号的数据段按序收发。同时要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机会重传发送该数据段TCP头部头部封装// TCP头 20字节struct tcphdr { unsigned short srcport; //源端口号 unsigned short dstport; //目的端口号

2021-05-22 15:06:27 878

原创 详解网络协议栈--IP协议

1. 网络分层模型1.1 物理层传输的是光电信号双绞线(电信号)光纤(光信号)1.2 网卡处于物理层和数据链路层之间,不属于网络分层模型中的任何一层作用是负责A/D转换和数据搬运接收数据时将光电信号转换成数字信号发送数据是将数字信号转换成光电信号网卡芯片负责数据转换,网卡驱动负责搬运数据1.3 数据链路层传输的是数字信号(二进制数据)以太网数据帧结构以太网帧头:MAC地址只有在局域网内有效,出了局域网就无效了//以太网帧头 14字节struct

2021-05-22 15:02:42 247

原创 协程的实现原理

协程在了解协程前,我们需要先理清几个概念:同步,异步,阻塞,非阻塞同步 vs 异步同步和异步描述的是用户线程与内核的交互方式同步:指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行异步:指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程或者调用用户线程注册的回调函数阻塞 vs 非阻塞阻塞和非阻塞描述的是用户线程调用内核IO操作的方式,其中同步才区分阻塞和非阻塞,异步则一定是非阻塞阻塞:指IO操作需要彻底完成后才返回到用户空间非阻塞:

2021-05-22 14:58:34 2742

原创 MySQL 基础知识

数据库的好处持久化数据到本地可以实现结构化查询,方便管理数据库相关概念DB:数据库,保存一组有组织的数据的容器DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据SQL:结构化查询语言,用于和DBMS通信的语言数据库存储数据的特点将数据放到表中,表再放到库中一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计表由列组成,我们也称为字段。所有表都是由一个或多

2021-05-22 14:48:37 182 1

原创 设计模式(四)--- 单例模式

单例模式1. 定义保证一个类有且仅有一个实例,并提供一个该实例的全局的访问点2. 结构Singleton : 单例类,该类能且仅能创建一个全局唯一的实例,故其构造函数必须私有(防止外界访问),同时提供一个公共的全局接口来访问该实例3. 示例单例模式在不同使用场景下,可有多个版本的代码实现,每个版本都有相应优缺点,具体如下所示:相关知识点回顾:程序内存分区及其内存销毁情况:内存堆区 : 指针,相应的内存需要手动销毁内存栈区 : 存放局部变量,接口退出时相应变量自动

2021-02-13 20:58:20 89

原创 设计模式(三)--- 观察者模式

观察者模式1. 定义定义对象间一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖它的对象都得到通知并自动更新2. 结构Suject:抽象目标,被观察的对象,对象中定义一个观察者集合,集合中包含多个观察者,对象通过attach()方法增加观察者,通过detach()方法删除观察者,通过notify()方法,当自身状态改变时将状态广播给观察者ConcreteSubject: 具体目标,具体实现notify()方法Observer: 抽象观察

2021-02-09 23:04:33 111

原创 设计模式(二)--- 模板方法

模板方法(Template Method)1. 定义定义一个基类,并在基类中定义操作的算法和接口框架,然后将其中一些接口的实现延迟到派生类类中2. 结构AbstractClass(基类):在基类中定义或声明了一系列基本操作方法(method),每个操作方法都对应算法(templatemethod)中的子步骤,在派生类中可以重新实现;ConcreteClass(派生类):实现或者覆盖基类中的基本操作方法3. 示例某动物园,有一套固定表演流程,但其中有若干子流程受欢迎程度较低,

2021-02-07 11:37:57 82

原创 设计模式(一) ---- 概述与设计原则

设计模式1. 定义设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案2. 核心思想找出业务功能中的稳定点和变化点,将稳定点和变化点分离,扩展修改(封装)变化点,让稳定点和变化点的实现层次分离3. 使用情况系统的关键依赖点能明确找到变化点能明确找到复用方向对需求变化方向熟悉4. 重构思想静态转变为动态早绑定转变为晚绑定继承转变为组合编译时依赖转变为运行时依赖紧耦合转变为松耦合5. 类之间的关系5.1 泛化(General

2021-01-28 09:44:19 311

原创 浅谈线程池

线程池概念在系统启动阶段创建一批空闲的线程组成集合,进程运行过程中会将产生的任务提交给线程池,线程池就会分配空闲的线程来执行该任务,任务执行结束后该线程不会销毁退出,而是再次回收到线程池中成为空闲线程,等待执行下一个任务。工作流程工作机制 任务是提交给整个线程池,而不是直接提交给某个线程,线程池接收到任务后,会在内部寻找是否有空闲线程,若有,则将任务交给某个空闲线程处理 一个线程同时只能处理一个任务,但可以同时向一个线程池提交多个任务 优势 减少系统资.

2020-11-26 16:42:28 141

C语言编程面试题

C语言编程实例100题,里面有各大企业面试常见的面试,值得面试者看看学习

2014-02-18

rtp协议相关库

rtp协议开发需要用到的一些库,开发入门必备的资料,值得大家学习学习。

2014-02-18

空空如也

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

TA关注的人

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