
池式结构
文章平均质量分 78
分析服务器中的线池结构
amanda39
这个作者很懒,什么都没留下…
展开
-
池式结构(4) 请求池
本文主要讲异步请求池的实现和原理。什么是异步?和阻塞、非阻塞有什么区别?同步:一请求就等返回结果,没有等到就一直等异步:只管发送请求,进程不需要一直等下去, 而是继续执行下面的操作阻塞和非阻塞是针对fd的状态,有数据就返回,没有数据就挂起,这是阻塞状态;非阻塞就压根不管,直接返回。阻塞【挂起】和非阻塞是线程的一种状态,同步和异步是指的是线程执行方法的一种方式,当然同步执行时,一般都伴随着线程的阻塞。背景:客户端与mysql服务器连接后,发送完一个请求没有等到返回结果,要是再要发送请求,只能原创 2021-11-18 22:28:42 · 697 阅读 · 0 评论 -
池式结构(3)
本文主要讲内存池的原理和实现池式结构的作用:主要起到缓冲作用。也就是需要使用资源时,在已有的资源结构中去拿,避免重新创建资源。背景:在网络数据中,建立io连接后,recv收到数据后,会讲数据放置在buffer中。若数据周期较长,或者将处理数据进行解耦,放置在另一个线程中处理,这样buffer就是不可用的。我们通常会malloc一个内存,将数据拷贝进去,再在新线程中 处理数据。问题:当大量io事件发生时,会出现:1、不利于内存管理;2、内存碎片;什么是内存池?拿取内存时,从内存池中拿取内存原创 2021-11-17 19:30:20 · 187 阅读 · 0 评论 -
池式结构(2)
本文主要将线程池的原理和实现线程池的应用场景主要是要开线程的都可使用。1、写日志2、对服务器业务计算,开线程的时候都可用线程池3、增删改查crud线程池的定义:就是线程的集合,这些线程是任务的执行队列,任务从任务队列中获取。组成:1、任务队列2、执行队列3、管理组件(让任务队列和执行队列有秩序的工作)管理组件如何实现?1、加锁2、条件变量在网络数据的处理过程中:1、检测IO世家是否就绪(epoll)2、对IO进行读写操作(recv/send)3、对数据进行解析与操作(pa原创 2021-11-17 14:13:18 · 131 阅读 · 0 评论 -
池式结构(1)
池化技术:定义:能够减少创建资源的次数,在高并发下能够提升效应效率 的技术。使用池化技术的背景:对象创建时间⻓;对象创建需要⼤量资源;对象创建后可被重复使⽤本文主要讲数据库连接池背景:单个连接有什么问题,流程是怎样的?目的是:连接到数据库服务器,执行sql语句。流程:1、tcp连接;2、mysql认证(账号和秘密给服务器);3、执行sql语句;4、MySQL关闭;5、tcp四次挥手;本质为了执行一条sql语句,但流程太长;若是有大量的sql语句要执行,则会耗费大量资源原创 2021-11-16 19:00:22 · 1569 阅读 · 0 评论