什么是IO操作?
I/O操作不仅指平常我们所知道的直接的文件、网络的读写、数据库操作还包括 Web Service、HttpRequest以及.Net Remoting等跨进程的调用。
IO分类:
- 同步阻塞式IO: 一个线程,等待IO结果返回再执行之后的语句。
- 同步非阻塞式IO: 一个线程,不用等待IO结果返回,可以执行之后的语句,用轮询方式检查IO操作。
- 多线程阻塞式IO: 多个线程处理多个IO的操作,对于每个IO来说相当于是阻塞的。
- 异步非阻塞式IO: 一个线程,不用等待IO结果返回,可以执行之后的语句,用事件回调的方式,IO操作完成后通知操作系统处理。
多线程和异步的适用范围:
- 多线程适用范围则是那种需要长时间CPU运算的场合,例如耗时较长的算法执行。
- 异步适用于多I/O操作