import Control.Concurrent
main = do
forkIO $ putStrLn "123"
forkIO $ putStrLn "456"
上記のコードを書きました。しかし、私がそれを実行したとき、私はいつも123
しか得られませんでした。456
印刷されません。メインスレッドが他のスレッドの前に終了したため、プログラム全体が終了したためだと思います。
どうすればこれを防ぐことができますか? すべてのスレッドが終了した後にメインスレッドが終了したことを確認できるAPIはありますか?
OS: OS X 10.8.3
コンパイラ: ghc 7.4.2