网站公告 bet3365体育投注app_BET354网址
365bet即时比分>>当前位置:主页 > 365bet即时比分 >

什么是同步IO和异步IO?

时间:2019-07-31    点击量:

展开全部
异步IO文件也与IO重叠。
在同步文件IO中,线程启动IO操作并等待IO操作完成并继续执行。
在异步文件I / O模式下,线程在继续其他处理之前向内核发送I / O请求。当内核完成I / O请求时,它会通知I / O线程操作已完成。
如果执行IO请求需要很长时间,则异步文件的IO模式可以显着提高效率,因为CPU在线程等待时编程其他线程执行。如果您不需要运行另一个子进程,那么现在就浪费了(可能是通过编写操作系统零页面线程)。
如果IO请求很快,异步IO仍然效率低下,因此建议使用同步IO。
同步I / O一次只允许一个I / O操作。也就是说,序列化相同文件ID的I / O操作。使用两个线程无法同时读取和写入相同的文件标识符。
重复IO允许一个或多个子进程同时发出IO请求。
异步IO在请求完成时通知应用程序,并将文件ID配置为具有信号状态。或者,应用程序可以通过GetOverlappedResult检查IO请求是否已完成。通过事件对象应用
例如,DeviceIoControl函数可以为每个参数指定同步或异步。在同步的情况下,该函数等待在执行下一个声明之前返回结果。
如果是异步,则DeviceIoControl会在调用后立即返回。如果参数正确,则返回ERROR_IO_PENDING(我忘记了语法,但肯定有单词PENDING)。您现在可以通过叠加结构GetOverlappedResult获得返回结果。这将调用传递的DeviceIoControl的最后一个参数。在
简单地说,“编程同步通常是指操作完成后的操作。可以执行以下操作。”获取IO“需要执行此IO操作。继续上一次操作
异步,我给系统一个操作(它可以是Windows或它自己的库),我来接受它,我对系统进行IO操作。