Una posible salida de este programa es:
$ ./thread_race 305: 1375 417: 1937 419: 1208 534: 1393 619: 1037 655: 1934 688: 1805 699: 1457Una forma de arreglar este programa es usar un mutex para proteger el acceso a esta variable. Además estamos midiendo el tiempo de ejecución.
Esta es una posible ejecución:
$ ./thread_mutex tiempo= 1499 msUsar un mutex es la forma más directa de resolver este problema; sin embargo, en este caso, dado que sólo estamos compartiendo una variable entera, es posible usar una variable atómica, lo cual permite una ejecución correcta y más eficiente que usando un mutex.
Este es un ejemplo de ejecutar este código:
$ ./thread_atomic tiempo= 560 msSaludos!