Tengo una variable compartida global y se actualiza 5 veces por cada uno de los 5 subprocesos generados. Según mi entendimiento de la operación de incremento está consistiendo en 3 InstruccionesValor máximo y mínimo posible de una variable compartida cuando se incrementa mediante varios subprocesos
load reg, M
inc reg
store reg, M
lo tanto, quiero pedir que en este escenario lo que sería el valor máximo y mínimo dado intercalado arbitraria en los 5 hilos.
Por lo tanto, según mi opinión, el valor máximo será de 25 (estoy 100% seguro de que puede ser más de 25) y el valor mínimo es 5. Pero no estoy tan seguro del valor mínimo. ¿Puede ser menos de 5 en algún entrelazado arbitrario? Cualquier entrada será muy apreciada.
/* Global Variable */
int var = 0;
/* Thread function */
void thread_func()
{
for(int c = 0; c < 5; c++)
var++;
}
¿Por qué está intentando actualizar una variable 'global' sin un bloqueo? –
@Mitch Wheat lo hace una pregunta teórica más "interesante"? –