Saltar al contenido

¿Cuál es la diferencia entre concurrencia, paralelismo y métodos asincrónicos?

Este grupo especializado luego de varios días de investigación y recopilación de de información, hallamos la solución, nuestro deseo es que resulte de gran utilidad para tu trabajo.

Solución:

Concurrente y paralelo son efectivamente el mismo principio que usted conjetura correctamente, ambos están relacionados con tareas que se ejecutan simultáneamente, aunque yo diría que las tareas paralelas deben ser verdaderamente multitarea, ejecutadas “al mismo tiempo”, mientras que concurrente podría significar que las tareas están compartiendo el subproceso de ejecución mientras todavía parece ejecutarse en paralelo.

Los métodos asincrónicos no están directamente relacionados con los dos conceptos anteriores, la asincronía se usa para presentar la impresión de tareas simultáneas o paralelas, pero de hecho, una llamada a un método asincrónico se usa normalmente para un proceso que necesita trabajar fuera de la aplicación actual y nosotros no lo hacemos. No quiero esperar y bloquear nuestra aplicación esperando la respuesta.

Por ejemplo, obtener datos de una base de datos puede llevar tiempo, pero no queremos bloquear nuestra IU esperando los datos. La llamada asincrónica toma una referencia de devolución de llamada y devuelve la ejecución a su código tan pronto como la solicitud se haya realizado con el sistema remoto. Su interfaz de usuario puede continuar respondiendo al usuario mientras el sistema remoto realiza el procesamiento necesario, una vez que devuelve los datos a su método de devolución de llamada, ese método puede actualizar la interfaz de usuario (o transferir esa actualización) según corresponda.

Desde la perspectiva del usuario, parece una multitarea, pero puede que no lo sea.


EDITAR

Probablemente valga la pena agregar que, en muchas implementaciones, una llamada a un método asincrónico hará que se active un hilo, pero no es esencial, realmente depende de la operación que se está ejecutando y de cómo se puede notificar la respuesta al sistema.

En breve,

Simultaneidad significa múltiples tareas que se inician, ejecutan y completan en períodos de tiempo superpuestos, sin un orden específico. El paralelismo se produce cuando varias tareas O varias partes de una tarea única se ejecutan literalmente al mismo tiempo, por ejemplo, en un procesador de varios núcleos.

Recuerde que la concurrencia y el paralelismo NO son lo mismo.

Diferencias entre concurrencia y paralelismo

Ahora enumeremos las diferencias notables entre la concurrencia y el paralelismo.

La simultaneidad es cuando dos tareas pueden iniciarse, ejecutarse y completarse en períodos de tiempo superpuestos. El paralelismo es cuando las tareas se ejecutan literalmente al mismo tiempo, por ejemplo. en un procesador de varios núcleos.

La concurrencia es la composición de procesos que se ejecutan de forma independiente, mientras que el paralelismo es la ejecución simultánea de cálculos (posiblemente relacionados).

La concurrencia consiste en lidiar con muchas cosas a la vez. El paralelismo consiste en hacer muchas cosas a la vez.

Una aplicación puede ser concurrente, pero no paralela, lo que significa que procesa más de una tarea al mismo tiempo, pero no hay dos tareas ejecutándose al mismo tiempo instantáneamente.

Una aplicación puede ser paralela, pero no simultánea, lo que significa que procesa varias subtareas de una tarea en una CPU de varios núcleos al mismo tiempo.

Una aplicación no puede ser paralela ni simultánea, lo que significa que procesa todas las tareas de una en una, de forma secuencial.

Una aplicación puede ser tanto paralela como concurrente, lo que significa que procesa múltiples tareas simultáneamente en una CPU de múltiples núcleos al mismo tiempo.

Concurrencia

La concurrencia es esencialmente aplicable cuando hablamos de un mínimo de dos tareas o más. Cuando una aplicación es capaz de ejecutar dos tareas virtualmente al mismo tiempo, la llamamos aplicación concurrente. Aunque aquí las tareas se ejecutan de forma simultánea, esencialmente PUEDEN no hacerlo. Aprovechan la función de división del tiempo de la CPU del sistema operativo donde cada tarea ejecuta parte de su tarea y luego pasa al estado de espera. Cuando la primera tarea está en estado de espera, la CPU se asigna a la segunda tarea para completar su parte de la tarea.

El sistema operativo se basa en la prioridad de las tareas, por lo tanto, asigna la CPU y otros recursos informáticos, por ejemplo, memoria; paso a paso a todas las tareas y darles la oportunidad de completarlas. Para el usuario final, parece que todas las tareas se ejecutan en paralelo. A esto se le llama concurrencia.

Paralelismo

El paralelismo no requiere que existan dos tareas. Literalmente, ejecuta físicamente partes de tareas O múltiples tareas, al mismo tiempo utilizando la infraestructura de múltiples núcleos de la CPU, asignando un núcleo a cada tarea o subtarea.

El paralelismo requiere hardware con múltiples unidades de procesamiento, esencialmente. En CPU de un solo núcleo, puede obtener simultaneidad pero NO paralelismo.

Métodos asincrónicos

Esto no está relacionado con la concurrencia y el paralelismo, la asincronía se usa para presentar la impresión de tareas simultáneas o paralelas, pero efectivamente, una llamada a un método asincrónico se usa normalmente para un proceso que necesita trabajar fuera de la aplicación actual y no queremos hacerlo. esperar y bloquear nuestra aplicación esperando la respuesta.

Concurrencia es cuando la ejecución de múltiples tareas está intercalada, en lugar de que cada tarea se ejecute secuencialmente una tras otra.

Paralelismo es cuando estas tareas se ejecutan realmente en paralelo.

ingrese la descripción de la imagen aquí


Asincronía es un concepto separado (aunque relacionado en algunos contextos). Se refiere al hecho de que un evento puede estar sucediendo en un momento diferente (no en sincronía) con otro evento. Los siguientes diagramas ilustran cuál es la diferencia entre una ejecución sincrónica y una asincrónica, donde los actores pueden corresponder a diferentes hilos, procesos o incluso servidores.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

valoraciones y comentarios

Tienes la opción de asentar nuestro ensayo fijando un comentario o dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *