Sincrónico simplemente significa que las cosas siguen en orden. Realiza el paso 1, luego realiza el paso 2, luego realiza el paso 3. El paso 3 nunca ocurre antes del paso 2 en este proceso sincrónico. El paso 2 debe concluir antes de comenzar el paso 3.
Asíncrono (no sincrónico) significa que los pasos del proceso pueden ocurrir al mismo tiempo, fuera de orden o al menos antes de que se completen otros pasos.
Usemos una analogía. Digamos que tiene una lista de 50 cosas que necesita comprar en la tienda de comestibles. Normalmente, vas solo, obtienes un carrito y comienzas a trabajar en la tienda recogiendo las 50 cosas, una a la vez, y poniéndolas en el carrito. Cuando termine, vaya a la caja y el verificador revisa los artículos que tiene en su carrito de uno en uno, los pasa por un escáner y coloca los artículos en bolsas. Luego llevas las bolsas a tu auto y las pones en el maletero. Hasta ahora todo bien, todo esto es sincrónico y, por lo tanto, cada paso del proceso es bloqueante .
- ¿Por qué el BIOS de mi computadora portátil no detecta el disco duro?
- ¿Cuál es la diferencia entre mirar afuera y mirar la pantalla de una computadora?
- Cómo hacer que una computadora portátil funcione mejor
- ¿Se romperá mi computadora portátil si la uso para escribir demasiado?
- ¿Puedo enchufar una unidad de enfriamiento de la CPU en la CPU Opt si es el único ventilador?
Ahora, comencemos con la misma premisa, sin embargo, esta vez tienes 10 de tus amigos para ayudarte. Usted toma su lista de 50 artículos y los coloca en una hoja de papel por artículo. Cada uno de tus 10 amigos recibe su propio carrito y, llegando a ti, cada uno recibe un pedazo de papel. Asincrónicamente , cada uno de tus amigos va a buscar el artículo en su papel, los pone en su carrito y luego regresa por otra hoja de papel. Cualquier persona puede viajar solo unos pocos pies para obtener este artículo, o puede viajar por toda la tienda, por lo que la persona 1, al final, puede haber recuperado 15 artículos, la persona 2 solo 3, etc. Tan pronto como usted se queda sin artículos de papel, cuando una persona regresa para obtener un nuevo documento, los dirige a uno de los 3 carriles de pago (solo tienen tres empleados trabajando hoy en el pago). Ahora, cada carril todavía tiene una persona que ejecuta la caja registradora, por lo que su proceso sigue siendo sincrónico. Cada carril manejará un número diferente de carros (dependiendo de cuántos artículos haya en cada carro). Los carriles de pago están bloqueados porque si la persona que realiza el pago ya está procesando un carrito, todos los demás carritos en ese carril tendrán que esperar para acceder al pago.
Tan pronto como hayas terminado de pasar los pedazos de papel, sales a tu auto y abres el maletero esperando que llegue la comida. Ahora es un proceso de bloqueo , ya que solo puede procesar un carro a la vez mientras coloca los artículos en el maletero. Tan pronto como haya puesto el contenido de una canasta en su maletero, el amigo guarda su carrito y sale del estacionamiento.
Ahora que he pasado por esta analogía, pongamos algunos términos a lo que sucedió. Cuando llegaste a la tienda tenías una lista de artículos que necesitabas. Esta sería una cola de bloqueo (LIFO, FIFO, no importa), está bloqueando porque debe garantizar que no se extraigan elementos de la cola dos veces, y es posible que lleguen dos amigos para obtener el siguiente elemento de la cola y cada uno tiene que esperar a cualquiera que llegue primero. Es una cola y no solo una lista porque debe eliminar cada elemento de la lista una vez que sabe que un amigo lo ha tomado.
Cada uno de tus amigos sería un proceso o un hilo (un tipo de proceso ligero). Cada una de las cestas también es una cola, en la que cada hilo inserta elementos a medida que se extraen de los estantes. Los carriles de pago también son hilos o procesos, ya que procesan el contenido de las cestas. Están bloqueando el hecho de que no hay suficiente para manejar los 10 procesos de tus amigos a la vez (y se bloquearán porque lleva mucho menos tiempo ingresar a su cola que procesar su cola).
Al final todo termina en un punto, la cajuela de tu auto. Esto se llamaría “unir” los hilos. Es un proceso en el que espera a que se completen todos los hilos (llegue a su automóvil después de salir) antes de poder pasar al siguiente paso (tal vez llevar los comestibles a casa, etc.). Lo hojeé, pero también te habrías unido a todos los hilos en el momento en que te quedaste sin pedazos de papel, ya que querrás asegurarte de haber redirigido todos los procesos a las líneas de pago (y que todos terminaron y hay no un amigo sentado en el suelo en la sección de helados pigging). También hay condiciones de error, condiciones de carrera y otras cosas que tendrá que comprender para realizar correctamente los procesos asincrónicos, que no he cubierto en absoluto.