Ho uno script in python che utilizza una risorsa che non può essere utilizzata da più di una certa quantità di script simultanei in esecuzione.Semaphores con nome in Python?
Classicamente, questo sarebbe risolto da un semaforo con nome ma non riesco a trovare quelli nella documentazione del modulo multiprocessing o threading.
Mi manca qualcosa o sono denominati semafori non implementati/esposti da Python? e ancora più importante, se la risposta è no, qual è il modo migliore per emularne uno?
Grazie, Boaz
PS. Per ragioni che non sono così rilevanti per questa domanda, non posso aggregare l'attività a un processo/demone continuamente in esecuzione o lavorare con processi generati, entrambi i quali, a quanto pare, avrebbero funzionato con l'API python.
Ci sono molti modi per sbagliare (equità, programmazione sveglia, condizioni di gara). Usa primitive kernel o libc (ad esempio la vera sem_ * API, o l'API CreateSemaphore/event in windows); evitare di far ruotare le proprie primitive di sincronizzazione. –
Questo è il motivo per cui offro che potresti usare boost se non ti senti a tuo agio. –