自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx学习

nginx学习

2024-07-26 10:22:57 244

原创 smallchat改造

smallchat是redis作者使用c开发的聊天服务器,实现了聊天室的功能。核心代码200多行,使用了IO多路复用技术。是一款适合学习IO多路复用的开源软件。原实现是使用select实现了IO多路复用。本文改造了原代码,改用epoll实现,并使用reacotor模型,使代码更精简,功能更聚合,方便使用和理解。

2023-11-30 19:15:30 191

原创 IO多路复用学习(5)reactor网络模型

reactor模型组成:非阻塞的io + io多路复用特征:基于事件循环,以事件驱动或事件回调的方式来实现业务逻辑理解:对io的处理转换为对事件的处理。单reactor模型redis单reactor模型 + 任务队列 + 线程池skynet多reactor多线程memcached多进程nginx

2023-10-23 19:44:35 23

原创 IO多路复用学习(4)阻塞IO和非阻塞IO

read从内核读缓冲区中将数据拷贝到用户空间,write把数据从用户空间拷贝到内核的写缓冲区中。

2023-10-13 11:51:32 64

原创 线程池技术

1.任务耗时长,主线程执行任务阻塞其他任务执行。把耗时的任务交给线程池处理。I/0阻塞型,计算处理型。1.系统资源有限,不可能无限创建线程,线程太多调度复杂,加解锁,性能反而下降。2.消费者线程:就是线程池,有固定大小的线程,处理任务。1.生产者线程:复杂任务分发,把任务交给线程池处理。2.频繁创建销毁线程消耗系统资源,影响性能。生产者往队列里放任务,消费者从队列里取任务。如果队列从空变为非空,唤醒消费者线程。如果队列为空,消费者线程阻塞休眠。2.需要线程并发处理。线程池干脏活,累活。

2023-09-21 10:08:51 18

原创 IO多路复用学习(3) epoll

本篇介绍epoll的相关机制和用法。epoll API有三个:epoll_create,epoll_wait,epoll_ctl。三个API共同使用才能完成epoll IO多路复用的功能,这里是与select和poll不一样的地方。

2023-09-18 14:26:27 78

原创 IO多路复用学习(2) poll

2.poll

2023-08-29 19:38:05 66

原创 IO多路复用学习(1) select

select/poll epoll nio,bio,aio reactor模型

2023-08-22 15:47:27 78 1

空空如也

空空如也

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

TA关注的人

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