2009-10-20 16 views
20

Así que estoy un poco confundido por esta terminología.¿Por qué los procesos asincrónicos no se llaman sincrónicos?

Todo el mundo se refiere a la informática "asincrónica" como la ejecución de procesos diferentes en hilos separados, lo que da la ilusión de que estos procesos se están ejecutando al mismo tiempo.

Esta no es la definición de la palabra asincrónico.

a⋅syn⋅chro⋅nous 
–adjective 
1. not occurring at the same time. 
2. (of a computer or other electrical machine) having each operation started only after the preceding operation is completed. 

¿Qué no entiendo aquí?

+4

No lo sé. Pero creo que es gracioso que la definición n. ° 2 sea exactamente lo opuesto a cómo los programadores usan la palabra. –

+1

Es por eso que generalmente uso Google: "define: * word *" para obtener mis definiciones. Obtienes cuatro o cinco o veinte definiciones a la vez. –

+1

Creo que su definición de la palabra "asíncrono" es incorrecta. –

Respuesta

10

Significa que los dos subprocesos no se están ejecutando en sincronización, es decir, no se están ejecutando en la misma línea de tiempo.

Creo que se trata de un caso en el que los científicos informáticos son demasiado astutos sobre el uso de las palabras.

La sincronización, en este contexto, sugeriría que ambos subprocesos comienzan y terminan al mismo tiempo. La asincronía en este sentido, significa que ambos hilos son libres de iniciarse, ejecutarse y finalizar a medida que lo requieran.

9

La palabra "sincrónico" implica que una llamada a la función será sincronizada con algún otro evento.

Asincrónico implica que no se produce dicha sincronización.

Parece que la definición que tiene debe ser realmente la definición de "concurrente", o algo así. Esa definición parece incorrecta.


PS:

Aquí es la definición wiktionary:

asynchronous

  1. No sincrónica; ocurriendo en diferentes momentos.
  2. (informática, de una solicitud o un mensaje) que permite al cliente continuar durante el procesamiento.

Lo que resulta ser el exacto opuesto a lo que publicaste.

+0

Obtuve mi definición de: http://dictionary.reference.com/browse/Asynchronous – Balk

+0

Encontré las definiciones que Balk publicó aquí: http://dictionary.reference.com/browse/asynchronous Parece que la definición de la palabra varía drásticamente dependiendo del contexto. –

+1

No digo que lo inventó, solo digo que las definiciones n. ° 2 de las dos fuentes están en directa oposición. –

2

yo supongo que es porque no están sincronizados;)

En otras palabras ... si uno proceso se detuvo, muerto, o está esperando algo, el otro va a continuar

1

Su segundo definición es más útil aquí:

2. [...] having each operation started only after the preceding operation is completed. 

Cuando realiza una llamada asincrónica, esa llamada no puede ser completada antes de iniciar la siguiente operación. Cuando la llamada es sincrónica, será.

+1

Su descripción es correcta, pero es lo contrario de lo que dice esa definición ... – Guffa

0

Realmente significa que un evento asíncrono está sucediendo independientemente de otros eventos mientras que un evento sincrónico estaría sucediendo dependiendo de otros eventos.

5

Creo que el término se utilizó por primera vez para la comunicación sincrónica frente a la asincrónica. Sincrónico significa que las dos partes que se comunican tienen una señal de reloj común que corren, por lo que se ejecutan en paralelo. La comunicación asíncrona tiene una señal de lista, por lo que una parte solicita datos y recibe una señal cuando está disponible.

Los términos se adaptaron luego a los procesos, pero como existen diferencias obvias, algunos aspectos de los términos funcionan de manera diferente. Para un proceso de subproceso único, la forma natural de solicitar que se haga algo es realizar una llamada síncrona que transfiera el control al subproceso, y luego se devuelva el control cuando finalice y el proceso continúe.

Una llamada asíncrona funciona igual que la comunicación asincrónica en el aspecto en que se envía una solicitud para que se haga algo, y el proceso que lo hace devuelve una señal cuando está hecho. La diferencia en el uso de los términos es que para los procesos está en el procesamiento asíncrono que los procesos se ejecutan en paralelo, mientras que para la comunicación es la comunicación síncrona la que se ejecuta en paralelo.

Por lo tanto, "computadora o máquina eléctrica" ​​es realmente un alcance demasiado amplio para hacer una definición correcta del término, ya que se usa de maneras ligeramente diferentes para diferentes técnicas.

+2

+1 para la señal del reloj. De hecho, de ahí viene el término. –

+0

+1 Esta es la respuesta más útil. Esto despejó la confusión que tuve durante bastante tiempo. Gracias :) – ajay

2

Creo que hay una inclinación que es ligeramente diferente a la mayoría de las respuestas aquí.

Asíncrono significa "no ocurrir al mismo tiempo".

En el caso específico de roscado:

  • síncrono significa "ejecutar este código ahora".
  • asíncrona significa "encolar este trabajo en un subproceso diferente que se ejecutará en algún momento indeterminado en el futuro"

Esto por lo general le permite "hacer dos cosas a la vez", debido a razones como:

  • un hilo está a la espera (por ejemplo, para recibir datos en un puerto serie) de modo está dormido
  • Usted tiene varios procesadores, por lo que los dos hilos se puede ejecutar concurrentemente.

Sin embargo, incluso con 128 núcleos de procesador, la carcasa es la misma: el trabajo se ejecutará "en algún momento en el futuro" (quizás en un futuro muy cercano) en lugar de "ahora".

0

Es como: inflamable, inflamable (que significa lo mismo)

En serio - es sólo uno de esos caprichos de la lengua Inglés. Realmente no tiene sentido. Puedes tratar de explicarlo, pero sería igual de fácil justificar los significados inversos.

+1

¡Qué país! –

Cuestiones relacionadas