目录
第一章 阻塞IO与非阻塞IO介绍
1.1 阻塞IO与非阻塞IO的定义
在Linux系统中,IO操作,即输入/输出操作,是数据在内存与外部设备之间传输的过程。这一过程中,根据IO操作的行为特性,可以将其划分为阻塞IO(Blocking IO)与非阻塞IO(Non-blocking IO)两种模式。这两种模式在处理不能立即完成的IO操作时,展现出截然不同的行为方式。
阻塞IO,顾名思义,当进程或线程发起的IO操作无法立即完成时,该进程或线程将被操作系统挂起,进入等待状态。在此期间,进程或线程无法继续执行其他任务,只能等待IO操作的完成。这种模式的优点在于实现简单,适用于对实时性要求不高的场景。其缺点也显而易见,即IO操作的等待时间会造成CPU资源的浪费,尤其是在高并发场景下,大量进程或线程因等待IO而阻塞&#