我提出的每个解决方案都不是线程安全的。
def uuid(cls,db):
u = hexlify(os.urandom(8)).decode('ascii')
db.execute('SELECT sid FROM sessions WHERE sid=?',(u,))
if db.fetch(): u=cls.uuid(db)
else: db.execute('INSERT INTO sessions (sid) VALUES (?)',(u,))
return u
multiprocessing.Queue
来完成相同的事情,而不是Queue.Queue
(后者用于线程,而不是用于多进程)。 - Alex Martellios.urandom()
是不安全的吗? - Denis Otkidach