最新 最热

多路IO—POll函数,epoll服务器开发流程

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

2023-11-01
1

多路复用(一):epoll原理

首先,需要调用epoll_create来创建一个epoll的文件描述符,内核会同时创建一个eventpoll的数据结构。这个数据结构里面会包含两个东西,一个是红黑树,专门用于存储epoll_ctl注册进来的fd文件描述符;另外一个是就绪链表,用来存...

2023-10-30
0

epoll 基于非阻塞I/O事件驱动

该程序来源于传智博客教师课件,本人只是自己对照着写了一遍并做了注释,该模型可以承载大量客户端的连接二不会出现卡顿等情况,前提是我们交互的数据很少,如果交互数据较大,该例子还是有些小问题的。大家可以自己拓展,配合多...

2023-10-20
0

【Linux】高级IO --- 多路转接,select,poll,epoll

1. 后端服务器最常用的网络IO设计模式其实就是Reactor,也称为反应堆模式,Reactor是单进程,单线程的,但他能够处理多客户端向服务器发起的网络IO请求,正因为他是单执行流,所以他的成本就不高,CPU和内存这样的资源占用率就会低...

2023-10-17
0

NIO之PollArrayWrapper(轮询数组包装器)(主要用于对FD文件描述符和events事件掩码操作)

腾讯云开发者社区是腾讯云官方开发者社区,致力于打造开发者的技术分享型社区。提供专栏,问答,沙龙等产品和服务,汇聚海量精品云计算使用和开发经验,致力于帮助开发者快速成长与发展,营造开放的云计算技术生态圈。...

2023-09-05
0

PostgreSQL中WaitEventSet的超时如何实现

WaitEventSet的等待超时如何实现?我们了解到,它和epoll有关,首先先了解下epoll_wait这个函数:

2023-08-09
0

【日拱一卒进击大厂系列】面试官:为什么单线程的Redis可以实现高并发访问

上回说到小枫在接受面试官的拷打,所幸第一个问题回答的还不错,因此面试官对于小枫的初步印象还行。我们接着来看看小枫是怎么和面试官继续过招的吧,他还能扛得住面试官几个连环炮呢?...

2023-03-20
0

IO多路复用和多线程会影响Redis分布式锁吗?

我们知道当我们使用 redis 作为分布式锁的时候,通常会使用 SET key value EX 10 NX 命令来加锁,获得锁的客户端才能成功 SET 这个 key,那么问题来了,这条命令在多线程的情况下是一个原子操作吗?...

2023-03-15
0

深入学习IO多路复用select/poll/epoll实现原理

Linux 服务器处理网络请求有三种机制,select、poll、epoll,本文打算深入学习下其实现原理。

2022-11-28
0

redis主循环源码分析

因为,所有线上请求的set、get操作都是在内存中,涉及到磁盘和网络的部分都是由后台线程执行,尽量减少了主线程的开销。单线程只是说对字典空间set、get时是单线程的,不需要同步机制,而将数据在用户空间和socket buffer之间...

2022-11-07
0