J'ai un script en python qui utilise une ressource qui ne peut pas être utilisée par plus d'un certain nombre de scripts simultanés en cours d'exécution.Sémaphores nommés en Python?
Classiquement, cela serait résolu par un sémaphore nommé mais je ne le trouve pas dans la documentation du module multiprocessing ou threading.
Ai-je manqué quelque chose ou sont nommés sémaphores non implémentés/exposés par Python? et plus important encore, si la réponse est non, quelle est la meilleure façon d'en imiter une?
Merci, Boaz
PS. Pour des raisons qui ne sont pas si pertinentes à cette question, je ne peux pas agréger la tâche à un processus/daemon en cours d'exécution ou travailler avec des processus générés - qui, semble-t-il, auraient fonctionné avec l'API python.
Il y a plusieurs façons de se tromper (équité, planification du réveil, conditions de course). Utilisez les primitives noyau ou libc (par exemple, l'API real sem_ * ou l'API CreateSemaphore/event dans Windows); évitez de rouler vos propres primitives de synchronisation. –
C'est pourquoi j'offre que vous pouvez utiliser boost si vous n'êtes pas à l'aise de rouler les vôtres. –