你这是咋读的……
“一个线程就可以同时处理多个 I/O 请求”,也没说 “只有一个线程同时处理多个 I/O 请求” 啊,更没说这个线程就一定是主线程啊。
可以有多个线程都处理 I/O 啊,而且这多个线程每个线程都能同时处理多个,比如一个线程专门处理磁盘 I/O,一个线程只处理网络 I/O,一个线程只接受键盘鼠标 I/O,完全是可以的。
另外确实有一些开发框架(大多数是 GUI 类)的,要求在主线程里处理 I/O,但这是人家自己的规定,不是操作系统的要求。也有很多框架要求不能在主线程里处理某些 I/O,比如 Android 就要求不能在主线程(即 UI 线程)里访问 Socket。所以你看,你也可以不在主线程里处理,都是可以的,取决于你怎么去设计和实现。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…