Scrivo su molti file in un'applicazione con thread e sto creando un gestore per file. Ho una classe HandlerFactory che gestisce la distribuzione di questi gestori. Quello che mi piacerebbe fare è cheMettere un thread in stop fino all'evento X
richieste filo A e ottiene handle di file di foo.txt dalla classe HandlerFactory
filo gestore di file richieste di B foo.txt
classe del gestore riconosce che questo handle di file è stato verificato
classe del gestore mette thread a dormire
filo B si chiude handle di file utilizzando un metodo involucro da HandlerFactory
HandlerFactory notifica dormire discussioni
filo B si sveglia e ottiene successo handle di file di foo.txt
Questo è quello che ho finora,
def get_handler(self, file_path, type):
self.lock.acquire()
if file_path not in self.handlers:
self.handlers[file_path] = open(file_path, type)
elif not self.handlers[file_path].closed:
time.sleep(1)
self.lock.release()
return self.handlers[file_path][type]
Credo che questo riguarda il reperimento di sonno e conduttore con successo , ma non sono sicuro di come riattivare tutti i thread, o ancora meglio di risvegliare un thread specifico.
Questo ha finito per risolvere il mio problema, grazie. – tipu