Capítulo 8. Introducción y visión general
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
¿Qué hace que los sistemas distribuidos sean intrínsecamente diferentes de los sistemas de un solo nodo? Veámoslo con un ejemplo sencillo. En un programa monohilo, definimos variables y el proceso de ejecución (un conjunto de pasos).
Por ejemplo, podemos definir una variable y realizar sobre ella operaciones aritméticas sencillas:
int x = 1; x += 2; x *= 2;
Tenemos un único hilo de ejecución: declaramos una variable, la incrementamos por dos, la multiplicamos por dos y obtenemos el resultado: 6
. Digamos que, en lugar de tener un único hilo de ejecución realizando estas operaciones, tenemos dos hilos que tienen acceso de lectura y escritura a la variable x
.
Ejecución Concurrente
Como en cuanto se permite que dos hilos de ejecución accedan a la variable, el resultado exacto de la ejecución concurrente de los pasos es impredecible, a menos que los pasos estén sincronizados entre los hilos. En lugar de un único resultado posible, acabamos teniendo cuatro, como muestra la Figura 8-1.1
-
a) x = 2, si ambos hilos leen un valor inicial, el sumador escribe su valor, pero se sobrescribe con el resultado de la multiplicación.
-
b) x = 3, si ambos hilos leen un valor ...
Get Internos de la base de datos now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.