Ch05 Network

10/22/2023 redis

# Network

image-20231024104328542

image-20231024104559193

image-20231024104855833

# 阻塞IO

image-20231024105347956

# 非阻塞IO

# IO多路复用

image-20231024110116752

image-20231024110305395

image-20231024110704535

# Select

image-20231024113525136

# POLL

image-20231024114851679

  • 提升的只有大小

# EPOLL

image-20231024123518650

  • 解决了用户空间到内核空间频繁的拷贝
  • 解决了要遍历所有的fd,因为只拿到了就绪的fd
  • 由于红黑树的结构,可以实际上监听非常多的fd,不会像poll和select模式一样增加fd会减缓很多效率

image-20231024124105091

# 事件通知机制

image-20231024124934425

  • LT通知完,如果还有没读取完的,就继续放入链表中
  • ET通知完就全部删除image-20231024143423013

# 信号驱动IO

image-20231024145026705

# 异步IO

image-20231024145231213

image-20231024145816285

# 为什么单线程?

image-20231024150233503

image-20231024151109685