Wird das Regal in Python für die Sicherung von Daten verwendet, die threadsicher ist? Wenn nicht, was ist eine gute Alternative?
Antworten
Zu viele Anzeigen?Aus der Standardbibliotheksdokumentation zum Shelve-Modul unter dem Abschnitt Einschränkungen:
Das Shelve-Modul unterstützt keine gleichzeitigen Lese-/Schreibzugriffe auf gespeicherte Objekte. (Mehrere gleichzeitige Lesezugriffe sind sicher.)
Ich würde annehmen, dass es wahrscheinlich von der Implementierung abhängt und in diesem Fall, um sicher zu sein, würde ich schlussfolgern, dass es definitiv nicht thread-sicher ist.
Andreas Jung
Punkte
1
AndrewE
Punkte
27
Threads = # Anzahl der Threads
thread_moment = [False for _ in range(Threads)]
def job(x): # x würde der Index des Threads sein
lock.aquire()
# Öffnen/Bearbeiten/Aktualisieren/Schließen Ihrer Regalfachdatei
thread_moment[x] = True
lock.release()
while True:
if all(thread_moment) == True:
thread_moment = [False for _ in range(threads)]
break
else:
time.sleep(1)
# Fahren Sie mit Ihrem Skript fort