Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es la diferencia entre Servlet3 AsyncContext asíncrono y asíncrono multiproceso?

¿Cuál es la diferencia entre Servlet3 AsyncContext asíncrono y asíncrono multiproceso?

Se puede decir que no existe una conexión necesaria entre asincrónico y multiproceso. Solo se puede decir que lo asincrónico solo se puede lograr mediante multiproceso.

Para comprender estas cosas, se deben tener muchos conocimientos. Conocimientos relevantes, principios del sistema operativo, principios de compilación, etc.

En pocas palabras, cuando la computadora o la CPU ejecuta su código, se ejecuta en secuencia. Antes de que se ejecute la declaración actual, las siguientes declaraciones no se ejecutarán. ¡Esta es una regla eterna! La declaración actual no se ejecutará hasta que se haya ejecutado la declaración. ¡Esta es una regla eterna!

Sin embargo, este mecanismo hará que toda la eficiencia de ejecución sea muy baja, porque la CPU siempre tiene que esperar a que se ejecute la declaración actual antes de poder ejecutar el siguiente código, y la computadora pasa la mayor parte de su tiempo esperando la entrada del usuario, esperando que se lea el archivo del disco y esperando que se transmitan los datos de la red. Por lo tanto, para mejorar la eficiencia de todo el sistema y mejorar la eficiencia de ejecución de la CPU, el sistema informático introduce. un mecanismo asincrónico.

El mecanismo asíncrono, en pocas palabras, significa que la CPU no estará en un estúpido estado de espera, sino que hará otra cosa primero, cuando lo que necesita esté listo (en la mayoría de los casos, está esperando cuando el Los datos de entrada externos están listos y se completan algunos cálculos complejos), el sistema de hardware interrumpe a la CPU, diciéndole que los nuevos datos ahora se pueden procesar.

Este es el principio asincrónico más básico. Los sistemas operativos modernos hacen un buen trabajo al encapsular sistemas de hardware, proteger una gran cantidad de mecanismos subyacentes y proporcionar a los desarrolladores de programas los conceptos de eventos y subprocesos múltiples. , desarrollo de programas Las personas pueden aprovechar mejor los mecanismos asincrónicos.

Hablemos de subprocesos múltiples. El subproceso múltiple es un concepto que solo apareció después de que la computadora introdujo el sistema operativo. En cuanto a por qué la computadora introdujo el sistema operativo, no lo describiré aquí y todos pueden entenderlo por sí mismos. Hay dos formas de implementar subprocesos múltiples: una es aumentar la cantidad de núcleos y CPU, que es el método más directo; la otra es utilizar el sondeo de CPU después de que cada proceso se ejecuta durante un período de tiempo; proceso para ejecutar instrucciones Dado que la velocidad de cambio es muy rápida, da la sensación de estar ejecutándose simultáneamente.

Dicho todo esto, puede que te decepcione la falta de código y ejemplos. Pero lo que quiero decir es que es imposible para nosotros ilustrar esto con código. Diferentes sistemas operativos, diferentes lenguajes de programación y diferentes marcos de programación definen y manejan los subprocesos múltiples y asincrónicos de manera diferente, pero el principio es el mismo.

Cuando escribimos código, no somos más que escribir un montón de instrucciones y pedirle a la CPU que las ejecute. La forma en que funciona la sincronización es la siguiente:

Yo: Hola, CPU. Quiero que hagas una cosa y debes hacerla inmediatamente, porque te estoy esperando.

CPU: Está bien, espera, lo haré ahora.

El método asincrónico es así:

Yo: Hola, CPU, quiero que hagas algo, pero no de inmediato, puedes entregárselo a la persona que está debajo de ti. o pide que entre un asistente y continuamos hasta atrás.

CPU: Bien, le diré al hardware que lo haga ahora y te avisaré mediante eventos cuando los resultados estén disponibles

o

CPU: Bien, dejo que el otro núcleo lo haga y continuamos (en realidad, el sistema operativo implementa el multiproceso, solo di un ejemplo)