说明:
这里先抛出一些问题,后续在学习的过程中会尝试回答这些问题
- 为什么Nginx要自己实现这些数据结构?
回答:
主要是由于Nginx具有跨平台和使用C语言实现这两个特点,导致其需要自己实现数据结构。具体原因如下:
1、跨平台的特性要求Nginx的所有代码都可以跨平台编译和运行,这导致Nginx不能依赖于某个第三方库的实现
2、C语言的实现是与每个操作系统强相关的。由于Nginx是C语言实现的,其底层没有虚拟机或其他机制去做兼容,所以只能根据操作系统的不同做一些特殊的实现 - Nginx都有哪些数据结构?
回答:
Nginx提供了6种常用的数据结构
- 双向链表(queue)
- 动态数组(array)
- 单向链表(list)
- 红黑树(rbtree)
- 基数树(radix)
- 散列表(hash)
- 这些数据结构的优缺点是什么?
后续补充 - 这些数据结构适用于什么样的场景?
后续补充