2012-07-31 2 views

Antwort

13

Die Frage ist falsch: Sie sind nicht gezwungen einen Thread pro Datei/Buchse und Verwendung blockierende Aufrufe laichen, Sie bekommen einen Thread pro Datei/Buchse und Verwendung blockierende Aufrufe laichen. Dies ist die sauberste Lösung (in jeder Sprache); Der einzige Grund, es in anderen Sprachen zu vermeiden, ist, dass es dort ein wenig ineffizient ist. GHCs Threads sind jedoch billig genug, dass sie in Haskell nicht ineffizient sind. (Zusätzlich verwendet GHCs IO-Manager hinter den Kulissen einen Epoll-ähnlichen, um Threads entsprechend aufzuwecken.)

+0

Danke für die Klarstellung :-) Ich habe auch an Sprachen wie Erlang gedacht, wo du einen leichten Prozess spawnt Es ist üblich, Daten von mehreren Sockets im selben Prozess zu empfangen. – Ricardo

Verwandte Themen