Bedeutet Lwt "Light Weight Thread"?

8

Ich habe Ocsigen getestet, die Lwt verwenden. Ich denke, Lwt bedeutet "Light Weight Thread", richtig? Wenn ja, wie können wir es "Leichtgewicht" nennen?

Es scheint, dass Lwt den OS-Thread verwendet, der NICHT leicht ist (im Vergleich zu Erlang und Haskell).

Bitte werfen Sie ein Licht auf mich, danke!

    
z_axis 08.08.2012, 00:43
quelle

2 Antworten

7

Die Dokumentationsseite für Lwt lautet:

  

[Lwt] bietet sehr leichte kooperative Fäden; Ein Thread zu starten ist eine sehr schnelle Operation, es erfordert keinen neuen Stack, einen neuen Prozess oder irgendetwas anderes. Außerdem sind Kontextwechsel sehr schnell. Tatsächlich ist es so einfach, dass wir für jeden Systemaufruf einen Thread starten. Und das Erstellen kooperativer Threads ermöglicht es uns, hoch asynchrone Programme zu schreiben.

    
Jeffrey Scofield 08.08.2012, 01:33
quelle
15

Ja, Lwt bedeutet leichte und Lwt-Fäden sind leicht. Lwt hat ein kooperatives Threading-Modell, nur ein einzelner Lwt-Thread läuft gleichzeitig auf einem einzelnen Systemthread, bis er schließlich die Kontrolle übernimmt. Es ist Ihre Pflicht, sicherzustellen, dass Ihre Berechnung letztendlich Ergebnisse liefert, andernfalls könnten andere LWT-Threads nie ausgeführt werden.

Lwt hat jedoch auch einen Pool von Systemthreads , der dazu dient, blockierende Systemaufrufe auszuführen oder Ihre lang laufenden Funktionen zu delegieren dass sie das ganze System nicht blockieren und verhindern, dass andere Lwt-Threads ausgeführt werden.

Sie können mehr über das Modell und die Implementierung von Lwt in diesem Papier erfahren (auf das Sie zugreifen können) die Webseite des ursprünglichen Autors, hier ).

    
Daniel Bünzli 08.08.2012 01:26
quelle

Tags und Links