Wie kann ich eine Faser mit C++ Boost anhalten (unterbrechen)?C++ Boost: Fiber - Wie kann ich eine Faser unterbrechen oder Join warten bis eine maximale Zeit?
zum Beispiel
fiber.stop()
Wie ich ausführen kann Faser (Zeit) mit c + Boost verbinden (der Standard api nicht gewartet eine maximun Zeit akzeptieren)? zum Beispiel:
fiber.join(1000);
es möglich ist, eine Faser zu suspendieren, serialisiert sie auf der Festplatte, dann in dem System neu zu laden?
Ich stimme nicht mit Ihrer Meinung. 1) um ein sehr fortgeschrittenes Fasermodell zu schaffen, kann man erlauben, die gleiche Bibliothek auf OS-Ebene oder sehr niedriger Ebene zu verwenden: dies hilft, alle tatsächlichen Probleme zu lösen, die mit Inkompatibilitäten der Sprachen mit Fasern und Interoperabilität zusammenhängen. 2) Die Serialisierung findet statt, kurz bevor der Faserstatus aus dem Thread entfernt wird, so dass Sie nicht die absoluten Zeigeradressen, sondern nur die relativen Offsets im Speicher speichern müssen. Sie können einen serialisierten tragbaren Status erstellen. Wenn du willst, kannst du es tun. Es ist nicht unmöglich. Der Vorteil ist beeindruckend. –
C++ 11 nicht std :: Thread-Unterbrechung bieten, rate warum ... Serialisierung des Stapels würde die Tür für die Verletzung der RAII öffnen. – xlrg
Ja, aus diesem Grund kann die Faser nicht innerhalb des Compilers, sondern innerhalb des Betriebssystems erstellt werden. Weil es das Verletzungsproblem löst, aber die Tür zu einer Welt der Möglichkeiten öffnet. Aus diesem Grund ist die Art und Weise, wie man eine Faser in der Sprache erstellt, nicht der bessere Weg: weil es die Möglichkeiten der Fasern einschränkt (Serialisierung, Taskmigration, ....) Der Compiler kann schließlich eine 2-Level-Serialisierung durchführen, die Datentypen beschreibt , .... –