C++ - Bibliotheken, die zur Umsetzung von Go goroutines oder Gehen die Kanäle?

Arbeite ich mit einem mittleren C++ - code-Basis, die derzeit komplett single-threaded. Die Zeit ist gekommen, jedoch, zu verfolgen, Gleichzeitigkeit und Parallelität für Leistungssteigerungen. Ich bin sehr interessiert in der concurrency-Modell von Google ' s Go Programmiersprache, mit sehr leichten goroutines und ein system der kommunizierenden Kanäle.

Leider, für eine Vielzahl von perfekt triftige Gründe, das Projekt braucht, um zu bleiben in C++. Also meine Frage ist: gibt es eine C++ - Bibliothek, die nahe der Go-Paradigma für Parallelität? Insbesondere ist es eine Annäherung von goroutines oder gehen die verfügbaren Kanäle für C++? Meine fallback-plan ist nur die Verwendung von boost::thread.

Die Anwendung in Frage ist ein Dauerbrenner proprietäre simulation für die financial-forecasting-Domäne. Es ist in der Regel CPU-gebunden, sondern bekommt auch blockiert IO, wenn neue Daten verfügbar werden. Viele der Berechnungen, die involviert sind, nicht abhängig von den bisherigen Ergebnissen und konnten ziemlich leicht gemacht, parallel laufen. Zu können, führen Sie die Anwendung in einem verteilten Kontext ist ein langfristiges Ziel, aber nicht eine, die muss sofort gelöst werden.

  • Ähnliche Frage: stackoverflow.com/questions/2190231/...
  • Wie sind Sie ähnlich?
  • Sie wirklich brauchen, um genauer zu sein über Ihr Projekt. Verschiedene Arten von Anwendungen profitieren (oder nicht) unterschiedliche threading-Modelle. Werden, dass Coroutinen (die goroutines im Grunde genommen sind) oder threads, vielleicht ein event-Modell besser geeignet ist, oder einer der verschiedenen Schauspieler-Bibliotheken. Beschreiben Sie Ihre Anwendung.
  • Ich habe einen Absatz der Beschreibung der Anwendung.
  • C. f. auch dieser, dieser und dieser.
InformationsquelleAutor Derek Thurn | 2010-12-15
Schreibe einen Kommentar