La lectura es segura para hilos, no hay problema ..... hasta que algo se escriba en la ubicación desde la que está leyendo, y luego ... bueno, con suerte leerá antes de que se cambien los datos, o leerá después del los datos se cambiaron (en estos casos, no hay preocupaciones), pero a veces, justo cuando realmente no lo desea, leerá a mitad de camino a través de la escritura y luego obtendrá datos de basura de competencia.
La forma de mitigar esto es asegurarse de que solo lee antes o después de cualquier escritura, lo que requiere que compruebe que se está produciendo una escritura y, por lo tanto, utilice un bloqueo de sincronización de algún tipo. Sin embargo, esto hace las cosas más lentas, ya que obviamente estás mirando el candado y luego leyendo en lugar de leer. Si está trabajando con tipos de datos primitivos (por ejemplo, una int), puede usar una sincronización de CPU para acelerar esto de manera espectacular.
Como en Python, lo más probable es que los datos de python siempre estén sincronizados para usted en el tiempo de ejecución del idioma; si no lo está, tarde o temprano obtendrá los mismos problemas de lectura de subprocesos. (Google rápido dice que sí, Python will suffer the same problems es que no tiene cuidado)
Yo recomendaría leer http: //en.wikipedia.org/wiki/Readers-writers_problem –