Nutzt Erlang mehrere Kerne, wenn er eine gen_server
ausführt? Wenn ich ein paar verschiedene handle_cast
in der gen_server
haben, und sie häufig aufgerufen werden, könnten sie parallel laufen? Ich frage, weil, ich habe ein Design, wo ein handle_cast
Daten in eine Warteschlange eingibt, und das andere Daten aus der gleichen Warteschlange entfernt und verarbeitet es. Die Warteschlange wird im Zustand gen_server
gehalten. Ein Problem, wie ich es sehe, ist, dass ich eine neue Warteschlange (mit dem neuen Element hinzugefügt oder mit dem abgerufenen Element entfernt) zurückgeben muss, wenn Sie den Status zurückgeben. Wenn diese parallel laufen, können sich in der Warteschlange möglicherweise Race Conditions oder Inkonsistenzen entwickeln. Ist das der Fall?handle_cast, mehrere Kerne und Warteschlangen
1
A
Antwort
4
Die Antwort auf Ihre Frage ist nein. A gen_server
läuft in einem einzigen Erlang-Prozess. Ein einzelner Prozess kann nicht in mehrere Aktivitäten unterteilt werden, die gleichzeitig ausgeführt werden können.
Verwandte Themen
- 1. C++ - Threads und mehrere Warteschlangen
- 2. Mehrere gleichzeitige Warteschlangen koordinieren
- 3. mclapply nicht mehrere Kerne verwenden
- 4. mehrere Arbeiter und mehrere Warteschlangen auf Sellerie Django Daemon
- 5. Wie verwendet man mehrere Kerne mit py.test?
- 6. Windows Netzwerk IOCP Skalierbarkeit über mehrere Kerne
- 7. Mehrere Prozesse starten CUDA Kerne parallel
- 8. Wie verwende ich mehrere Kerne mit MSYS2 und mingw32-make?
- 9. MATLAB und mehrere Kerne verwenden, um Berechnungen auszuführen
- 10. Angenommen automatisch scipy und numpy Funktionen enthalten nicht mehrere Kerne
- 11. Wie strukturiere ich Solr-Kerne für mehrere Gebietsschemas und Inhaltstypen?
- 12. Mehrere Kerne für einzelne ASP.net-Anfrage
- 13. mehrere Warteschlangen mit der gleichen Bindungsschlüssel und einem Verbraucher
- 14. Rabbitmq und alle Warteschlangen fangen
- 15. Mehrere Warteschlangen-Listener führen denselben Job über mehrere Prozesse aus
- 16. Warteschlangen Serviceaufrufe
- 17. RabbitMQ Spiegelung Warteschlangen und Austausch
- 18. Warteschlangen und Wartegriffe in C#
- 19. Stacks, Warteschlangen und verknüpfte Listen
- 20. Mulitprocessing, beenden und korrupte Warteschlangen
- 21. Semaphore Warteschlangen
- 22. Nutzen Sie mehrere Kerne, die SQL-Anweisungen ausführen
- 23. Bash: Das gleiche Programm über mehrere Kerne laufen lassen
- 24. Können in Google Datalab mehrere CPU-Kerne verwendet werden?
- 25. So optimieren Sie Android-Apps für mehrere Kerne
- 26. redis: Erstellen mehrerer Warteschlangen/Nachrichtenbroker
- 27. Verwenden Sie immer mehrere Kerne (/ MP) Flag mit Visual Studio?
- 28. Verwenden von Nutch solrindex zum Indexieren auf mehrere Kerne?
- 29. Wie erstelle ich Push-Queue-Aufgaben für mehrere Warteschlangen?
- 30. Warum verwendet scala.io.Source alle Kerne?