import Control.Concurrent ( forkIO ) import Control.Monad ( forM_ ) main = do forkIO $ forM_ [ 1, 3 .. 100 ] print forM_ [ 0, 2 .. 100 ] print
ghc --make Foo -threaded -O2
./Foo +RTS -N2
(benutzt 2 Cores)
forkIO erzeugt Haskell-Thread,
das RTS verteilt diese
auf Ausführungskontexte (OS/Cores)
main thread fertig
⇒ Programm fertig
(geforkte Threads werden abgebrochen)