Wann sollte ich asynchrone Operationen in boost :: asio anstelle von synchronen Operationen in separaten Threads verwenden?Wann asynchrone Operationen in Asio verwendet werden sollten
Antwort
Ich würde Sie dringend auffordern, einen asynchronen Ansatz zu verwenden, wann immer dies möglich ist. Ein asynchroner Aufruf erstellt nicht notwendigerweise einen Thread. Wenn Sie also mit einer asynchronen Operation fortfahren, können Sie den Overhead reduzieren, der Threads zugeordnet ist. Darüber hinaus sind Threads in der Regel schwieriger zu entwickeln und zu warten.
Ich hoffe, es hilft.
Kann der Abschnitt Rationale helfen?
Die meisten Programme interagieren in irgendeiner Weise mit der Außenwelt, sei es über eine Datei, ein Netzwerk, ein serielles Kabel oder die Konsole. Manchmal können einzelne E/A-Vorgänge wie bei der Vernetzung sehr lange dauern. Dies stellt die Anwendungsentwicklung vor besondere Herausforderungen.
Boost.Asio stellt die Tools zur Verfügung, um diese lang laufenden Operationen zu verwalten, ohne dass Programme Parallelitätsmodelle basierend auf Threads und explizitem Sperren verwenden müssen.
- 1. Wann sollten Speicherkarten verwendet werden?
- 2. Wann sollten Klassen in C# verwendet werden?
- 3. Wann sollten Makrofunktionen in Erlang verwendet werden?
- 4. Anwendungsdesign - Wann sollten Schnittstellen verwendet werden?
- 5. Wann sollten Pragmas auf SQLite verwendet werden?
- 6. Wann sollten schwache Referenzen verwendet werden?
- 7. Wann sollten JavaScript-Template-Engines verwendet werden?
- 8. Wann sollten zusammengesetzte Indizes verwendet werden?
- 9. Wann sollten BOOL und bool in C++ verwendet werden?
- 10. Wann sollten Singleton-Klassen in Ruby verwendet werden?
- 11. Wann sollten explizite Ausrichtungsrichtlinien in der Assembly verwendet werden?
- 12. Wann sollten `DateTime.now.utc` und` Time.current.utc` in Rails verwendet werden?
- 13. Wann sollten Named Pipes in Windows verwendet werden?
- 14. Wann sollten mehrere Sprite-Batches in XNA verwendet werden?
- 15. Wann sollten Erweiterungsmethoden vermieden werden?
- 16. Sollten erwartete, erwartete Operationen erwartet werden?
- 17. Unterstützt Jedis asynchrone Operationen
- 18. Wann sollten 1-zu-1-Beziehungen zwischen Datenbanktabellen verwendet werden?
- 19. Clojure Best Practice: Wann sollten Metadaten verwendet werden?
- 20. Wann sollten <%# ... %> und <%= ... %> verwendet werden?
- 21. Wann sollten Seaside-Komponenten verwendet und wann einfache Renderobjekte verwendet werden?
- 22. Verschachtelte asynchrone Operationen in node.js
- 23. Wann sollten Ereignisse in Silverlight ausgehängt werden?
- 24. Wann sollte FOUNDATION_EXPORT verwendet werden?
- 25. Wann sollten Ganzzahlen explizit angegeben werden?
- 26. Wann Anwendungskontext in Springs verwendet werden soll.
- 27. Welche Textboxereignisse sollten verwendet werden
- 28. Wann sollten die BDD-Testszenarien geschrieben werden?
- 29. Wann sollten keine benutzerdefinierten Ausnahmen erstellt werden?
- 30. Wann sollte in Rust inline verwendet werden?