sincronico sincronas sincrona funciones ejecucion controlar asincrono asincronico asincronia asincrona aprendizaje jquery asynchronous definition synchronous

jquery - sincronas - Términos asincrónicos y sincrónicos



funciones sincronas javascript (5)

Estoy confundido por el término asincrónico cuando está relacionado con la programación. Parece significar lo opuesto en términos de programación como lo que se define como en el diccionario. Por ejemplo, la palabra sincrónico significa:

  1. ocurriendo al mismo tiempo; coincidiendo en el tiempo; contemporáneo; simultáneo.

  2. pasando al mismo ritmo y exactamente juntos; recurrentes juntos.

Sin embargo, Wikipedia dice:

"En la programación, los eventos asíncronos son aquellos que ocurren independientemente del flujo principal del programa. Las acciones asíncronas son acciones ejecutadas en un esquema no bloqueante, lo que permite que el flujo del programa principal continúe el procesamiento".

¿No sería algo que no sea "bloqueador" y que permita "que el flujo principal del programa continúe el procesamiento", esté sincronizado o "ocurra al mismo tiempo"? Parece que el término sincrónico sugiere "no bloqueo" y asincrónico, "bloqueo". ¿Por qué los términos parecen usarse al revés cuando están relacionados con la programación, o tiene algo que ver con la informática de nivel inferior que no entiendo?

Cuando uso una llamada AJAX sincrónica, hago lo siguiente ...

$.ajax({ url: somefile.php, async: false, success: { ...code that gets run on success... } }); ...code that gets run after the ajax-success code runs...

Con esto, realmente espera una respuesta antes de ejecutar el resto del script, es una acción de bloqueo. Entonces, ¿por qué esto se denomina sincrónico, cuando no está sincronizado con ningún otro proceso, sino realmente lo contrario?


sincrónico: - cuando cada tarea se conectó y depende de la tarea previa

asincrónico: - cada tarea es independiente de las demás.


De hecho, es uno de estos casos, donde el significado original de la palabra fue subvertido y significa algo diferente que en el uso popular.

"Sincronización" en telecomunicaciones significa que el receptor envía señales cada vez que está listo para recibir mensajes, y solo después de esta señal el transmisor comenzará a transmitir. Cuando el transmisor finaliza con el mensaje, indicará que ha finalizado, de modo que el receptor puede procesar el mensaje recibido y hacer lo que se supone que debe hacer a continuación.

Esto es, por supuesto, una simplificación y una muy amplia, pero debería darte la sensación de que el significado de ''(a) sincrónico'' viene en JS.

Entonces, la solicitud sincrónica en JS está realmente sincronizada con el flujo principal del programa. El programa envía una solicitud al servidor (''Estoy listo para recibir'') y espera el mensaje. El mensaje del servidor tendrá un final bien definido (''el mensaje termina aquí, haga su trabajo''). Cuando se recibe, JS sabe que puede continuar con la ejecución del programa.


synchronous hace que el navegador no responda hasta que se complete la solicitud, es decir, que espere hasta que se atienda la solicitud, mientras que asincrónico permitirá que el navegador continúe procesando mientras espera una respuesta.


Synchronous en el contexto de su pregunta significa que 2 partes están esperando la una a la otra.
Por ejemplo, si tiene un código de cliente que realiza una solicitud a un servidor y su código no continúa su procesamiento hasta que llega la respuesta del servidor, significa que su código es sincrónico, es decir, sincrónico con la respuesta del servidor.
Si su código de cliente realiza la solicitud pero no espera una respuesta y continúa su procesamiento y una vez que llega la respuesta del servidor, su código (en un controlador específico, por ejemplo) comienza a procesar la respuesta y luego se procesa. asíncrono, es decir, el procesamiento del cliente central es asíncrono con la respuesta del servidor.
Estos términos implican una breve dependencia ya que no es posible convertir un código síncrono a asincrónico si (utilizando el ejemplo de cliente-servidor) la respuesta es obligatoria para que el cliente continúe su procesamiento.

¿No sería algo que no sea "bloqueador" y que permita "que el flujo principal del programa continúe el procesamiento", esté sincronizado o "ocurra al mismo tiempo"? Parece que el término sincrónico sugiere "no bloqueo" y asincrónico, "bloqueo".

Interpretación incorrecta de los términos. No es el flujo del programa lo que se sincroniza. Son diferentes partes que podrían ser (por ejemplo, hilos) o no podrían ser parte del mismo programa que podría sincronizarse o no.


Solicitud sincrónica: una solicitud se llama sincrónica cuando espera la respuesta de esa solicitud en particular antes de ejecutar la otra. es decir, cuando un cliente realiza una llamada de forma síncrona, bloquea el navegador del cliente para garantizar que el cliente no pueda realizar otra llamada antes de obtener la respuesta del servidor para esa llamada anterior.

Solicitud asincrónica: una llamada asíncrona funciona independientemente, es decir, no espera la respuesta del servidor antes de ejecutar otra llamada o solicitud. entonces puede simplemente hacer diferentes llamadas al mismo tiempo sin esperar la respuesta del servidor.