Se habla de concurrencia o de programas concurrentes cuando el programa se descompone en varias tareas. En este documento nos centraremos en el modelo de concurrencia de los threads de java que se caracterizan por
— compartir memoria
— repartirse el tiempo de CPU (tenga el equipo una o más CPUs)
Ver “thread”.
Toda solución concurrente a un problema puede calificarse según las siguientes propiedades:
— safety (seguridad):no ocurre nada malo;
contrarias a la seguridad son las carreras race conditions
— liveness (vivacidad): antes o después, ocurre algo bueno;
contrarios a la vivacidad son el interbloqueo [deadlock] y el bloqueo activo (livelock)
— fairness (equidad): los recursos se reparten con justicia;
contrario a la equidad es la inanición [starvation]
Temas relacionados