千里之行,始于足下
多躁者必无沉毅之识,多畏者必无卓越之见,多欲者必无慷慨之节,多言者必无质实之心,多勇者必无文学之雅。——曾国藩
基于C++11可变参模板实现的线程池项目总结 基于C++11可变参模板实现的线程池项目总结
线程池项目环境:vs2019开发、C++17标准;centos7编译so动态库 一.项目介绍作为五大池之一 (内存池、连接池、线程池、进程池、协程池),线程池的应用非常广泛,不管是客户端程序,还是后台服务程序,都是提高业务处理能力的必备模块
2024-02-20 Merlin
C++11-thread多线程-线程互斥和同步通信-死锁问题 C++11-thread多线程-线程互斥和同步通信-死锁问题
1. C++11的多线程类threadC++11之前,C++库中没有提供和线程相关的类或者接口,因此在编写多线程程序时,Windows上需要调用CreateThread创建线程,Linux下需要调用clone或者pthread线程库的接口函
2024-01-20 Merlin
四、高性能HTTP服务器设计 四、高性能HTTP服务器设计
32 | 自己动手写高性能HTTP服务器(一):设计和思路在开始编写高性能HTTP服务器之前,我们先要构建一个支持TCP的高性能网络编程框架,完成这个TCP高性能网络框架之后,再增加HTTP特性的支持就比较容易了,这样就可以很快开发出一个高
2024-01-20 Merlin
三、select/poll/epoll高性能网络模型 三、select/poll/epoll高性能网络模型
19 select感知多个I-O事件什么是I/O多路复用在 第11讲 中,我们设计了这样一个应用程序,该程序从标准输入接收数据输入,然后通过套接字发送出去,同时,该程序也通过套接字接收对方发送的数据流。 我们可以使用fgets方法
2024-01-10 Merlin
二、网络异常处理 二、网络异常处理
09 TIME_WAITTCP四次挥手,在四次挥手的过程中,发起连接断开的一方会有一段时间处于TIME_WAIT的状态,TIME_WAIT相关的问题始终是绕不过去的一道难题。 TIME_WAIT发生的场景先从一例线上故障说起。在一次升级线上
2023-12-27 Merlin
一、网络编程基础 一、网络编程基础
一、TCP/IP网络协议01 网络模型 02 客户端-网络模型的基本概念在网络编程中,具体到客户端-服务器模型时,经常会考虑是使用TCP还是UDP,其实它们二者的区别也很简单:TCP中连接是谁发起的,在UDP中报文是谁发送的。在T
2023-12-20 Merlin
1.链表基本操作 1.链表基本操作
一 |链表: 基本操作24. 两两交换链表中的节点 解析: 链表操作通常新建一个空头节点, 使用两个辅助指针 pre 和 cur,每次交换 cur 和 cur->next 两个结点,交换终止条件为 pre 后面不存在两个未交换结点。
2023-12-12 Merlin
3-CPU上下文切换(下) 3-CPU上下文切换(下)
4 | 经常说的 CPU 上下文切换是什么意思?(下)怎么查看系统的上下文切换情况过多的上下文切换,会把CPU 时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶。 怎么查看上下
2023-07-20 Merlin
网络编程基础 网络编程基础
一、TCP/IP网络协议01 网络模型 02 客户端-网络模型的基本概念在网络编程中,具体到客户端-服务器模型时,经常会考虑是使用TCP还是UDP,其实它们二者的区别也很简单:TCP中连接是谁发起的,在UDP中报文是谁发送的。在T
2023-07-20 Merlin
3-CPU上下文切换(上) 3-CPU上下文切换(上)
3 | 经常说的 CPU 上下文切换是什么意思?(上)多个进程竞争 会导致CPU 平均负载升高 进程在竞争 CPU 的时候并没有真正运行,为什么还会导致系统的负载升高呢?CPU 上下文切换就是罪魁祸首。 Linux 是一个多任务操作系统,它
2023-07-19 Merlin
2-CPU平均负载 2-CPU平均负载
2 | 到底应该怎么理解“平均负载”?每次发现系统变慢时,通常做的第一件事,就是执行top或者uptime命令,来了解系统的负载情况。比如像下面这样,我在命令行里输入了uptime命令,系统也随即给出了结果。 $ uptime 02:34:
2023-07-15 Merlin
1-Linux性能优化 1-Linux性能优化
1 | Linux性能优化性能指标是什么?学习性能优化的第一步,一定是了解“性能指标”这个概念。 当看到性能指标时,首先想到“ 高并发”和“ 响应快”,而它们也正对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是 从应用负载的
2023-07-13 Merlin
1 / 3