import Control.Concurrent
main = do
forkIO $ putStrLn "123"
forkIO $ putStrLn "456"
Napisałem powyższy kod. Ale kiedy ją wykonałem, zawsze miałem tylko 123
. 456
nie jest drukowany. Chyba dlatego, że główny wątek zakończył się przed drugim wątkiem, więc cały program właśnie się skończył.Jak mogę się upewnić, że główny wątek kończy się po zakończeniu wszystkich pozostałych wątków?
Jak mogę temu zapobiec? Każdy api może upewnić się, że główny wątek zakończył się po zakończeniu wszystkich wątków?
OS: OS X 10.8.3
kompilator: ghc 7.4.2
3) Łatwo jest zrozumieć kogoś, kto pochodzi z innego języka. "async" i "wait" mają łatwo zrozumiałe znaczenie angielskie. Z drugiej strony ">> putMvar done()" i "takeMvar done" są niezrozumiałe. – 7stud
lub "współbieżnie (putStrLn" 123 ") (putStrLn" 456 ")' – JJJ