刚刚踏入NodeJS的世界,对同步式I/O和异步式I/O有点不理解。
同步式I/O:当线程的执行过程中遇到I/O操作时,通常会很耗时,这时操作系统会剥夺这个线程的cpu使用权,将资源分配给其他的工作线程,当I/O操作完毕时,再恢复其对cpu的控制。照这个意思来说,是不是I/O操作是与cpu无关,I/O完成之后线程再继续执行?
异步式I/O:当遇到I/O操作时,不会等待I/O操作完成,而只是将 I/O 请求发送给操作系统,继续执行下一条语句。当操作系统完成 I/O 操作时,以事件的形式通知执行 I/O 操作的线程,线程会在特定时候处理这个事件。这里为什么是发送给操作系统,或者说为什么操作系统会有处理I/O的能力?
先多谢各位了。。
同步式I/O:当线程的执行过程中遇到I/O操作时,通常会很耗时,这时操作系统会剥夺这个线程的cpu使用权,将资源分配给其他的工作线程,当I/O操作完毕时,再恢复其对cpu的控制。照这个意思来说,是不是I/O操作是与cpu无关,I/O完成之后线程再继续执行?
异步式I/O:当遇到I/O操作时,不会等待I/O操作完成,而只是将 I/O 请求发送给操作系统,继续执行下一条语句。当操作系统完成 I/O 操作时,以事件的形式通知执行 I/O 操作的线程,线程会在特定时候处理这个事件。这里为什么是发送给操作系统,或者说为什么操作系统会有处理I/O的能力?
先多谢各位了。。