Haz que el módulo aleatorio sea seguro para hilos en Python

Tengo una aplicación que requiere los mismos resultados dado el mismo valor aleatorio. Pero encuentro random.randint no threadsafe. He intentado mutex pero esto no funciona. Aquí está mi código de experimento (largo pero simple):

<code>import threading
import random

def child(n, a):
    g_mutex = threading.Lock()
    g_mutex.acquire()
    random.seed(n)
    for i in xrange(100):
        a.append(random.randint(0, 1000))
    g_mutex.release()

def main():
    a = []
    b = []
    c1 = threading.Thread(target = child, args = (10, a))
    c2 = threading.Thread(target = child, args = (20, b))
    c1.start()
    c2.start()
    c1.join()
    c2.join()

    c = []
    d = []
    c1 = threading.Thread(target = child, args = (10, c))
    c2 = threading.Thread(target = child, args = (20, d))
    c1.start()
    c1.join()
    c2.start()
    c2.join()

    print a == c, b == d

if __name__ == "__main__":
    main()
</code>

Quiero codificar para imprimirverdad verdad, pero es una oportunidad para darfalso falso. ¿Cómo puedo hacer randint seguro para hilos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta