10 2021 档案

摘要:Epoll是Linux IO的多路复用的机制,是select/poll的增强版本,在Linux内核fs/eventpoll.c中可以查看epoll的具体的实现。 一、epoll数据结构 学习任何组件,首先得知道它有什么数据结构或者数据类型,epoll主要有两个结构体:eventpoll和epitem 阅读全文
posted @ 2021-10-17 20:34 MrJuJu 阅读(354) 评论(0) 推荐(0) 编辑
摘要:一、前言 在讲网络协议栈前,先理解一个数据包在网络传输是一个怎么样的流程,如下图所示。 正常的流程是网卡接收到数据后,把数据copy到协议栈(sk_buff),协议栈把sk_buff数据解析完后再把数据放到recv_buff,此时应用程序调用recv把数据从协议栈copy到应用程序;发送数据包,则与 阅读全文
posted @ 2021-10-11 17:07 MrJuJu 阅读(511) 评论(0) 推荐(0) 编辑
摘要:一、背景 在工作项目使用多进程、多线程过程中,因争夺资源而造成一种资源竞态,所以需加锁处理。如下图所示,线程A想获取线程B的锁,线程B想获取线程C的锁,线程 C 想获取线程D的锁, 线程D想获取线程A的锁,从而构建了一个资源获取环,当进程或者线程申请的锁处于相互交叉锁住的情况,就会出现死锁,它们将无 阅读全文
posted @ 2021-10-06 15:39 MrJuJu 阅读(406) 评论(0) 推荐(0) 编辑