Beispiel Chan

berechnet Summe der Zahlen [1..n] mit mehreren Threads

ch :: Chan Integer <- newChan

-- mehrere Threads starten:
forM [ 1 .. threads ] $ \ t -> forkIO $ do
    let s = sum [ t, t + threads .. n ] 
    seq s -- Auswertung erzwingen
          $ writeChan ch s -- dann schreiben

-- auf die Werte warten:
ss <- forM [1 .. threads] $ \ t -> readChan ch
print $ sum ss



Johannes Waldmann 2010-01-25