自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EPOLL

边沿触发是的读取数据时,需要循环处理,这时候如果使用阻塞io就会导致没有数据可读时候程序阻塞在循环中,所以使用边沿触发必须使用非阻塞io(即将socket文件描述符设置为非阻塞),通过判断错误码,数据读取完返回错误码EAGAIN,循环中判断错误码,如果错误码是EAGAIN,则跳出循环。select/poll:服务器进程每次都需要 从户态复制句柄到内核态,让操作系统轮询这些套接字上是否有事件发生,轮询完之后,在将句柄数据复制到用户态,让服务器应用程序继续轮询处理已发生的事件。epoll 反应堆模型中,

2023-09-21 16:33:55 171 1

原创 操作系统相关

共享内存是映射一段能被其他进程所访问的内存,这段内存由一个进程创建,但多个进程都可以访问;共享内存不需要陷入内核态或者系统调用,大大提高了通信的速度,是最快的进程间通信方式,但是当多进程竞争同一个共享资源时,使用共享内存会造成数据错乱的问题。管道分为匿名管道和命名管道,它是一种半双工的通信方式,数据只能单向流动,管道的通信数据遵循先进先出的原则;消息队列是保存在内核中的消息链表,按照消息的类型进行消息传递,具有较高的可靠性和稳定性。消息队列的消息体有一个最大长度的限制,所以不适合比较大的数据的传输。

2023-09-07 20:48:44 116

原创 C++内存分布

堆是用于存放进程运行中被动态分配的内存段,它的大小,并不固定,可动态扩张或缩放。当进程调用malloc/free等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张)/释放的内存从堆中被提出(堆被缩减)。栈是由编译器自动分配释放,存放函数的参数值,局部变量的值等(但不包括static声明的变量,static意味着在数据段中存放变量)。全局数据区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和静态变量在相邻的另一块区域。

2023-08-31 20:36:04 122

原创 智能指针使用注意

循环引用,spa出作用域将自己析构,此时A的引用计数为2,对象A不会被析构,即有self存在A不能被析构,self是A的成员,若要销毁self,必须要先销毁A对象;内存泄漏,A对象构造了不会析构;

2023-08-31 12:17:00 71

原创 ZK_RPC

其中有两个async_call()函数,分别是异步回调接口。将回调函数写入callback_map_

2023-08-22 21:32:48 203 1

原创 堆构建以及堆排序

【代码】堆构建以及堆排序。

2023-08-21 19:38:50 63 1

原创 无锁队列lockfree_queue

【代码】无锁队列lockfree_queue。

2023-08-21 19:36:55 103 1

原创 完美转发forward

【代码】完美转发forward。

2023-08-21 19:36:11 117 1

原创 两种单例模式

【代码】两种单例模式。

2023-08-21 19:34:00 94 1

原创 深浅拷贝实现

深浅拷贝

2023-08-21 19:30:47 129 1

原创 智能指针模拟实现

智能指针模拟实现

2023-08-21 19:29:15 125 1

原创 计算机网络

在接收方确认应答报文中会将下一次期望接收到的序列号发送回发送方即确认号(接受的数据字节序+1)。TCP粘包就是发送方若干个数据包到达接收方的时候,多个包首尾相连粘成一个包,无法区分。在2MSL(报文最大存活时间)内,本次连接的socket(客户端ip和端口,服务器ip和端口)不能再被使用,这样迟到的报文会被丢弃。4.将消息分为头部和消息体,在头部中保存整个消息的长度,只有读取到足够长度的消息后才算是读到了一个完整的消息。4拥塞控制:TCP会检测网络中的拥塞情况,并调整发送数据的速率,避免网络拥塞。

2023-08-13 22:01:40 296 1

原创 Rpc工作流程

被调用方(callee):UserServiceRpc继承自(google::protobuf::Service),后者已将有CallMethod纯虚函数,在UserServiceRpc中实现。调用UserServiceRpc_stub中的Login方法,login方法会调用CallMethod方法,这时候多态发生,调用我们重写的RpcChannel中的CallMethod方法。UserService继承UserServiceRpc(继承自google::protobuf::Service)。

2023-08-10 18:06:57 193 1

原创 nginx动静分离

location / ~*(a|b|c){} #a,b,c nginx上静态资源目录。nginx反向代理服务器,在nginx上部署静态资源,动态请求真正的服务器相应。nginx动静分离(小型网站使用)

2023-05-15 10:47:45 88 1

原创 基于C++的epoll反应堆

将经典C语言epoll反应堆模型封装到一个类中。

2023-04-06 16:02:07 537 2

原创 【无标题】

【代码】【无标题】

2023-04-03 09:30:33 169 1

原创 nginx启停

nginx启停。

2023-03-25 15:35:41 105

原创 简易的C++11线程池

简易的c++11线程池

2023-03-22 15:42:03 153

空空如也

空空如也

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

TA关注的人

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