自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 epoll原理简要分析

当一个进程A调用recv阻塞,等待数据时,其实是睡眠在了recv所等待的socket(这里假设有fd1、fd2)的等待队列上,当网卡接收到数据,并得知该数据发给fd1时,会触发中断,fd1会从等待队列上唤醒A,使得A重新进入运行状态,而A被唤醒后,得知至少有一个socket上有数据到来,便执行程序遍历一遍监听的socket列表,就可以得到就绪的socket。在理解上述数据到来时,进程如何感知到是哪个socket有数据的过程后,来看一下epoll所做的改进。

2024-03-16 21:50:54 981

原创 单链表构造过程C++版

单链表构造过程 假设一开始要求要构造一条链表1,2,3,4,这时,我们知道数据是1,2,3,4,但实际的构造工作得我们自己做。 以第一个结点为例,第一个结点的值是1,我们首先通过通过以下代码开辟第一个结点, ListNode* root = new ListNode(1); 上述代码中,new这个关键字会生成一个ListNode大小的空间,并将这个空间的地址返回,赋给root,这样第一个结点也就构造完成了,下一个结点是2,通过下面的代码继续构造: ListNode* second = new

2022-05-12 22:05:43 343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除