HTTP3笔记

什么是 HTTP/3?

要理解什么是 HTTP/3,需要明白 HTTP/3 的提出为了解决哪些问题,通过什么手段解决。

OS-IO

为什么需要中断

计算机中有大量的硬件,它们之间通过各种总线连接,比如:

  • CPU和内存通过某种专有的高速总线连接。
  • 显卡和现代的SSD等高速设备通过PCIe连接到CPU。
  • 鼠标、机械硬盘等缓慢的设备通过外设 I/O 总线连接到 CPU。

实际现代 CPU 将内存控制器集成于芯片,采用 DDR4/DDR5 通道,由内部互连(如 Intel UPI、AMD Infinity Fabric)管理多路内存访问。

OS-并发-事件循环

基于事件的循环

一个典型的事件循环如下:

1
2
3
4
5
while(1){
    events=getEvents()
    for e in events:
        processEvent(e)
}

基于事件循环的并发,调度由程序自己进行,因此调度是可控的。同时,事件循环有两类实现:单线程事件循环、一个主线程负责事件循环并拉起其他线程处理具体事务。本次主要基于单线程事件循环进行。

OS-并发-同步

条件变量

条件变量是一种同步机制,用于线程间的通信。当某些执行状态不满足时,线程可以将自己加入到等待队列中,直到该条件发生并被唤醒。条件变量有两个主要操作

OS-并发-锁

互斥

《从入门到放弃》之中,写到并发编程需要放弃原子性、顺序性、可见性。

现在,我们需要让代码重新获得原子性和顺序性。为此,我们需要互斥,也就是阻止并发的发生,阻止多个线程同时读写数据。