七叶笔记 » golang编程 » 150行代码,手写线程池,每个人都能学会。自行准备linux环境

150行代码,手写线程池,每个人都能学会。自行准备linux环境

目录 总结送福利无偿

1. 线程池 的使用场景

2. 线程池的实现原理

3. 线程池动态放缩

日志在 罗盘 的时候每一次都需要写磁盘,它里面带有缓冲区的,但不一定每次都罗盘,这个过程中间也有一个罗盘动作的不管有没有缓冲区,每执行一次log(level,”)都需要写一次磁盘,这个过程中间你会发现写磁盘的速度是很慢的,

对于服务器来说每一次请求,对于有N多个客户端,每个客户端往服务端发送请求,

请求一次

我们在服务端这边,把每一次请求,达成日志,打成日志方便我知道代码运行到那个地步,以及错误出在那里,我们可以通过log(level,”xxx”)写。

由于每次落盘速度比较慢,你就会发现客户端每一次请求性能吞吐量就等同于我们写磁盘的效率。

就是每来一次请求,我们都需要经过一次或者多次写磁盘,就会出现一个现象也就是他的性能,会等同于写磁盘的速度,那怎么办呢

有一个方法可以引入线程池,把每一次写日志时当做一个任务,把这个任务抛到线程池,最后罗盘线程池,也就是说每次往线程池里抛一个任务就是罗盘的动作。

这样的我们就不用每次去关注这个罗盘的动作,而是只要把他抛到线程池,线程池之下就可以了。

线程池的功能组件

总结 私信送(下图资料)

详细教程关注+后台私信;资料;两个字可以免费领取 资料内容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL, Redis ,fastdfs, MongoDB ,ZK, 流媒体 CDN ,P2P,K8S, Docker ,TCP/IP,协程,DPDK,嵌入式 等。。。

相关文章