logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入理解自旋锁与互斥锁:原理、区别与应用场景

互斥锁是一种阻塞型锁,当一个线程尝试获取已被其他线程持有的互斥锁时,该线程会被操作系统挂起,进入睡眠状态,直到锁被释放后才被唤醒。自旋锁是一种非阻塞型锁,当一个线程尝试获取已被其他线程持有的自旋锁时,该线程会在一个循环中不断尝试获取锁,而不是被挂起。自旋锁和互斥锁自旋锁:适合短时间等待、多核环境、实时性要求高的场景互斥锁:适合长时间等待、单核环境、需要节省CPU的场景在实际开发中,应该根据性能测试

#linux
从 TCP 90μs 到 SHM 28μs:我的 RPC 框架零拷贝优化历程

在做这次 TCP → SHM 的迁移之前,我对进程间通信的理解就是"socket 一发一收"。做完之后才意识到——即使是本机 loopback,走 TCP 也要穿过整条内核网络栈,中间每一步拷贝和系统调用都是成本,SHM 本质上就是把"中间人"全去了,两个进程直接在同一块内存上干活。严格来说,SHM 数据路径上从用户 Buffer memcpy 到 ring buffer 这一步仍然是 CPU 拷

#架构#分布式#c++
深度解析TCP三次握手四次挥手

服务端将剩余数据都发送完毕后,确认自己没有东西要发了,于是向客户端发送FIN报文,用来关闭服务端到客户端的数据传输。服务端:CLOSE_WAIT——>LAST_ACK(最后确认)TCP作为一个可靠的传输协议,无论是建立连接的“三次握手”,还是断开连接的“四次挥手”,其每一步的设计都充满了智慧,旨在复杂的网络环境中保证数据传输的准确性和可靠性。三次握手是为了防止历史重复连接的初始化错误。四次挥手是由

文章图片
#网络#tcp/ip#网络协议 +3
康复训练 3

内存布局:类对象内存模型(成员变量、虚指针)、字节对齐规则(alignof/alignas)、内存对齐对性能的影响答:在对象内存模型的开始,是虚函数指针,如果有菱形继承的话还有虚基表,接着是父类的成员变量(如果继承了父类),接着是自己类对象的成员变量。

#c++
c语言分支和循环

主要讲解了c语言中分支与循环的内容

文章图片
#c语言#算法#开发语言
到底了