Red de conocimiento informático - Conocimientos de programación - ¿Cuál es la diferencia entre IO asíncrona y IO síncrona en programación?

¿Cuál es la diferencia entre IO asíncrona y IO síncrona en programación?

La IO de archivos asincrónicos también es IO superpuesta.

En el archivo IO sincrónico, el subproceso inicia una operación IO y luego ingresa inmediatamente al estado de espera y no se activa hasta que se completa la operación IO para continuar con la ejecución. En el método IO de archivo asincrónico, el subproceso envía una solicitud de IO al kernel y luego continúa procesando otras cosas. Una vez que el kernel completa la solicitud de IO, notificará al subproceso que la operación de IO se ha completado.

Si la solicitud de IO tarda mucho en ejecutarse, el método de IO de archivo asíncrono puede mejorar significativamente la eficiencia, porque durante el tiempo que el subproceso está esperando, la CPU programará la ejecución de otros subprocesos, si no hay otro. los subprocesos deben ejecutarse, de lo contrario, este tiempo se desperdiciará (posiblemente programando el subproceso de página cero del sistema operativo). Si la operación de solicitud de IO es muy rápida, el método de IO asíncrono sigue siendo ineficiente y es mejor utilizar el método de IO sincrónico.

La E/S síncrona solo permite una operación de E/S al mismo tiempo, lo que significa que las operaciones de E/S para el mismo identificador de archivo se serializan. Incluso si se utilizan dos subprocesos, no se pueden emitir lecturas al mismo identificador de archivo al mismo tiempo. operación de escritura al mismo tiempo. La superposición de IO permite que uno o más subprocesos emitan solicitudes de IO simultáneamente.