您现在的位置:首页 --> 查看专题: 链表
目录:1. 优雅地使用链表;2. 高效地分支判断;3. 汇编实现的原子操作;4. 0长度数组;5. 三目运算的另类表达
链表是Linux内核中最重要的数据结构,但Linux内核中的链表与传统的数据结构书中看到的链表结构略有不同。这里简单写一下我对于Linux内核中链表的理解,不足之处欢迎路过的大牛给出批评意见。 1.传统形式的链表 数据结构书中的链表一般是下面这种形式: struct list { struct list *pre; struct list *next; void *data; }; 每一个链表结构中都包括两个同类型的指针,分别指向链表的上一个节点和下一个节点。这样当该节点处于一个循环链表中时,链表的首节点一般不用于保存数据,但首节点也需要是一个struct list类型,当结构庞大时首节点也必须分配同样大小的空间,这样就造成了内存的浪费。
本文的标题让我纠结了好久,不知道是connections数组合适,还是connections链表更合适;Nginx在此或多或少的注入了二者的特点,先不管是叫数组还是叫链表吧,只要能够弄明白这个connections是怎么回事就大功告成。Nginx的每个worker进程都使用一个相同的connections数组来维护每个连接。当有一个新的连接建立时,Nginx需要从这个数组取出一个slot来存放这个连接;相反,有一个连接断开时,也需要将相应的slot归还给connections数组...
这是之前朋友出的一道题目,感觉不错,就拿来分享一下。 问题如下: 一个单向链表,怎么判断他是否存在环? 图示: 对于最简单的做法就是: 用一个指针走一圈,如果重复遇到其他任何一...
[ 共5篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[318] WordPress插件开发 -- 在插件使用 -
[151] 解决 nginx 反向代理网页首尾出现神秘字 -
[92] IOS安全–浅谈关于IOS加固的几种方法 -
[49] 二维码的生成细节和原理 -
[49] Linux Used内存到底哪里去了? -
[48] Hacker News 排名算法工作原理 -
[48] 到底什么是MVC? -
[48] Shell的那些事儿 -
[48] 浏览器的工作原理:新式网络浏览器幕后揭秘 -
[48] 中间件和稳定性平台
赞助商广告




