Torne o módulo aleatório thread-safe em Python

Eu tenho um aplicativo que exige os mesmos resultados, dada a mesma semente aleatória. Mas eu acho random.randint não threadsafe. Eu tentei mutex mas isso não funciona. Aqui está o meu código experimental (longo, mas simples):

<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>

Eu quero codificar para imprimirverdade verdade, mas é uma chance para darfalso, falso. Como posso fazer randint threadsafe?

questionAnswers(3)

yourAnswerToTheQuestion