Wie kann ich codieren, um dieselbe Instanz einer "singletonic" -Klasse zwischen Prozessen zu teilen?python singleton in multiprocessing
Antwort
Am besten ist es, einen bestimmten Prozess als Eigentümer dieser Instanz zu bezeichnen und ihm zu widmen; Jeder andere Prozess, der Zugriff auf diese Instanz benötigt, erhält ihn, indem er Nachrichten über eine Queue (wie vom Multiprocessing-Modul bereitgestellt) oder andere IPC-Mechanismen für die Nachrichtenweitergabe an den Eigentümerprozess sendet und die Antworten über ähnliche Mechanismen zurückerhält.
Der ganze Sinn von Prozessen besteht darin, unterschiedliche Adressräume zu haben. Wenn Sie Informationen zwischen Prozessen austauschen möchten, müssen Sie einige Mittel von interprocess communication verwenden.
Ich glaube nicht, dass Sie die Instanz zwischen den Prozessen freigeben können, aber Sie können die Instanz auf gemeinsam genutzten Speicher zugreifen: http://docs.python.org/library/multiprocessing.html#sharing-state-between-processes, um ihren Status zu steuern, wenn das wirklich das ist, was Sie tun möchten.
Wie jedoch in anderen Antworten erwähnt, könnte es einfacher sein, mit einer Warteschlange zu erreichen, was Sie wollen.
In Python 2.6 hat das Modul multiprocessing
ein Objekt Value
, das für sharing state between processes verwendet wird. Sie haben ein Codebeispiel, das Ihnen eine Vorstellung davon geben soll, wie Sie den Status auf diese Weise teilen können, und Sie können diese Methode beim Schreiben einer Singleton-Klasse verwenden.
- 1. Python MultiProcessing
- 2. Multiprocessing in Python blockiert
- 3. Multiprocessing/Multithreading in Python ..?
- 4. Multiprocessing in Python 3
- 5. Python Multiprocessing in Kolben
- 6. Python Multiprocessing Pool vs Multiprocessing ThreadPool
- 7. String Argumente in Python Multiprocessing
- 8. Finding Ausnahme in Python Multiprocessing
- 9. Python Sync Variablen in Multiprocessing
- 10. Multiprocessing verschachtelte Python Loops
- 11. Python Multiprocessing & Pathos: Importfehler
- 12. Python itertools multiprocessing
- 13. Python sklearn und multiprocessing
- 14. Python Multiprocessing Geschwindigkeit Ausgabe
- 15. Python Multiprocessing Imap Chunksize
- 16. Python Multiprocessing + Subprozess Probleme
- 17. Python Multiprocessing: Zugriff verweigert
- 18. python multiprocessing mit maxtasksperchild
- 19. Python Multiprocessing stdin Eingang
- 20. Python Watchdog spawn multiprocessing
- 21. Python Multiprocessing-Ausgabe
- 22. Python Multiprocessing Frage
- 23. Python Multiprocessing Documentation Beispiel
- 24. Python Multiprocessing vs Eventlet
- 25. Python Multiprocessing-Manager
- 26. Python Multiprocessing Prozess stürzt still
- 27. mit Liste mit Python Multiprocessing
- 28. Python, Problem mit Multiprocessing-Bibliothek
- 29. Python Multiprocessing Pool mit map_async
- 30. Python Multiprocessing: Fortschrittsbericht von Prozessen
Sollte ich stattdessen Threading bevorzugen? – DrFalk3n