Frage

Ich mag ahold eines leichten, tragbaren Faser lib mit MIT-Lizenz (oder lockeren) erhalten. Boost.Coroutine nicht qualifiziert (nicht leichte), auch nicht tragbare Coroutine Bibliothek noch Kent C ++ CSP (beide GPL).

Edit: Können Sie mir helfen, einen zu finden? :)

War es hilfreich?

Lösung

  1. Libtask : MIT Lizenz
  2. Libconcurrency : LGPL (ein wenig enger als MIT, aber es ist ein Funktions Bibliothek!)

Beide sind für C geschrieben.

Andere Tipps

ich eigentlich gebloggt dies in der Vergangenheit . Guck mal! Ich hoffe, dass es Ihre Fragen beantwortet. Darin decke ich eine Reihe von Bibliotheken, und ich war besonders interessiert an denjenigen, die für die Systemprogrammierung (asynchrone IO) nützlich waren.

Auffälliger von dieser Abdeckung fehlt Boost.Coroutine , die ich hier besprechen werden . Boost.Coroutine kann „Schwergewicht“ konzeptionell berücksichtigt werden (in Bezug auf die Familie der Arten), aber die Umsetzung ist sehr effizient. Das eigentliche Problem ist, dass Boost.Coroutine unvollständig ist, und (zuletzt geprüft I) abgeschlossen weit. Ich hatte einige Zeit versucht, mit dem Autor durch seine Nicht-Starter Probleme verbracht zu arbeiten, da ich wirklich darauf freute es in Verbindung mit Boost.Asio zu verwenden (dies war eine der Boost.Coroutine primären Ziele), aber der Autor hat nicht hatte die Zeit, seine Arbeit die Boost-formale Überprüfung der Bühne zu nehmen.

Liste von Implementierungen für C

für ultraleichte „Fäden“ zu sehen Protothread am unteren Rande des Wikipedia-Artikels.

Jetzt haben Sie zwei bessere Möglichkeiten mit Boost-Lizenz:

Es ist eine extrem schnelle und leichte C asymmetrische Koroutine Bibliothek - libaco .

Es ist sehr klein, sehr schnell und extrem effiziente Speicher:

  

Neben der Implementierung einer produktionsfertigen C Koroutine   Bibliothek, hier ist eine detaillierte Dokumentation darüber, wie ein implementieren   schnellste und korrekte Koroutine Bibliothek und auch mit einem strengen   mathematischer Beweis;

     

Es hat nicht mehr als 700 LOC aber hat die volle   Funktion, die Sie aus einer Koroutine Bibliothek möchten;

     

Der Benchmark-Teil   zeigt, dass eine Zeit des Zusammenhangs zwischen Koroutinen Schalt nur   dauert ungefähr 10 ns (für den Fall von Standalone-Stack) auf dem AWS   c5d.large Maschine;

     

Benutzer wählen könnte ein neues Koroutine mit einem schaffen   Standalone-Stapel oder mit einem Anteil Stapel (könnte mit anderen geteilt werden);

     

Es ist sehr speichereffizient: 10000000 Menge an Co   gleichzeitig läuft nur 2,8 GB physisch Speicherkosten (lief mit   tcmalloc, jeder Co hat eine 120B copy-Stack-Größe Konfiguration).

Es hat auch eine sehr ausführliche Dokumentation.

PS:

Es ist unter der Apache License, Version 2.0.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top