No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué es la concurrencia?

26/36
Recursos

Aportes 18

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

La concurrencia está alineando con múltiples cosas al mismo tiempo mientras que el paralelismo está haciendo múltiples cosas al mismo tiempo.

Concurrencia != Paralelismo

Les comparto un video donde explican muy bien la diferencia entre estos 2 terminos 😃
https://www.youtube.com/watch?v=mRn0exsKRCA

En resumen:

Concurrencia te permite estar pendiente de varios procesos, comienzas uno, empiezas otro, ves si el anterior ya terminó, luego crear otro así

El paralelismo, es usar varios hilos del procesador para hacer varios procesos a la vez, pero siempre estas esperando que la tarea termine.

Una manera interesante de ver alguno de los problemas con la concurrencia es con el uso de maps.
por ejemplo si ejecutamos el siguiente código:

package main

import "fmt"

func main() {
	m := make(map[string]int)

	m["1"] = 1
	m["2"] = 2
	m["3"] = 3
	m["4"] = 4
	m["5"] = 5
	m["6"] = 6
	m["7"] = 7
	m["8"] = 8
	m["9"] = 9
	m["10"] = 10

	for _, value := range m {
		fmt.Printf("%d\n", value)
	}
}

Van a haber momentos donde no se va a imprimir en orden correcto.

Imagino que la concurrencia aprovecha mas cada hilo, pues el mismo hilo se encarga de hacer muchas cosas y el paralelismo utiliza mas recursos.

Un ejemplo practico de la vida real puede ser:
Concurrencia: En un banco hay un solo cajero, la persona que esta haciendo su transacción, por algún motivo tiene que esperar por una aprobación, entonces lo hacen esperar a un lado mientras siguen atendiendo a los demás en la fila
Paralelismo: Resulta que en la otra sede de ese banco, hay 3 cajeros, entonces se van atendiendo de manera paralela.

La concurrencia y el paralelismo no son exclusivos, en muchos casos siempre es una mezcla de ambas.
Les recomieno leer esta discusión sobre concurrencia y paralelismo, tiene ejemplos bastante claros que resolveran la mayoria de sus dudas.
https://qastack.mx/programming/1050222/what-is-the-difference-between-concurrency-and-parallelism

Este es un tema que de primera vista es complicado de asimilarlo, por eso les dejo una analogía que me ayudó a entender concurrencia cuando trabajaba con microprocesadores.

Una forma de resumir el paralelismo y la concurrencia es esta:

Paralelismo: 3 filas para pagar y 3 cajas abiertas
Concurrencia: 3 filas para pagar y una caja abierta

Por lo que entendi de la definicion es que concurrencia puede manejar varias peticiones en un solo input por ejemplo, mientras, paralelismo hace varias cosas en una sola instancia

https://stackoverflow.com/questions/1050222/what-is-the-difference-between-concurrency-and-parallelism Este hilo describe bastante bien las diferencias entre concurrencia y paralelismo también

Sin duda alguno, no entendí la explicación.

Concurrency is not Parallelism by Rob Pike

https://www.youtube.com/watch?v=oV9rvDllKEg

Que manera tan genial de explicar la concurrencia jajaja

Lo mejor de Go

😂

Muy interesante todo esto