Ich arbeite mit einer mittelgroßen C++ - Code-Basis, die derzeit vollständig single-threaded ist. Die Zeit ist jedoch gekommen, Parallelität und Parallelität für Leistungssteigerungen zu verfolgen. Ich bin sehr an dem Parallelitätsmodell der Go-Programmiersprache von Google interessiert, mit sehr leichtgewichtigen Göroutinen und einem System zur Kommunikation von Kanälen.C++ - Bibliotheken, die Go-Goroutines oder Go-Channels implementieren?
Leider muss das Projekt aus einer Vielzahl von absolut gültigen Gründen in C++ bleiben. Meine Frage ist also: Gibt es eine C++ - Bibliothek, die das Go-Paradigma für Parallelität approximiert? Gibt es eine Approximation von Goroutines oder Go-Channels, die für C++ verfügbar sind? Mein Fallbackplan ist nur boost :: thread.
Bei der betreffenden Anwendung handelt es sich um eine proprietäre Langzeitsimulation für die Finanzprognosedomäne. Es ist normalerweise CPU-gebunden, wird aber auch bei IO blockiert, wenn neue Daten verfügbar werden. Viele der beteiligten Berechnungen sind nicht von vorherigen Ergebnissen abhängig und könnten ziemlich leicht parallel ausgeführt werden. Die Möglichkeit, die Anwendung in einem verteilten Kontext auszuführen, ist ein langfristiges Ziel, das jedoch nicht sofort gelöst werden muss.
Ähnliche Fragen: http://stackoverflow.com/questions/2190231/looking-for-ac-or-clibrary-providing-a-funktionality-similar-to-google-gos-c – JimR
Wie sind sie ähnlich ? –
Sie müssen wirklich genauer auf Ihr Projekt eingehen. Verschiedene Arten von Anwendungen profitieren (oder nicht) von verschiedenen Threading-Modellen. Seien Sie das Koroutinen (die im Grunde genommen sind) oder Fäden; vielleicht ist ein Event-Modell besser geeignet oder eine der verschiedenen Actor-Bibliotheken. ** Beschreiben Sie Ihre Bewerbung **. – jer