¿Se puede compartir un entero entre hilos de forma segura?
¿Hay algún problema con varios subprocesos que usan la misma ubicación de memoria entera entre pthreads en un programa C sin ninguna utilidad de sincronización?
Para simplificar el problema,
Solo un hilo escribirá al enteroMúltiples hilos leerán el enteroEste pseudo-C ilustra lo que estoy pensando
void thread_main(int *a) {
//wait for something to finish
//dereference 'a', make decision based on its value
}
int value = 0;
for (int i=0; i<10; i++)
pthread_create(NULL,NULL,thread_main,&value);
}
// do something
value = 1;
Supongo que es seguro, ya que un número entero ocupa una palabra del procesador, y la lectura / escritura de una palabra debería ser la más atómica de las operaciones, ¿verdad?