[Haskell-beginners] basic threading
Thomas Davie
tom.davie at gmail.com
Wed Mar 4 08:34:47 EST 2009
On 4 Mar 2009, at 13:33, Michael Easter wrote:
>
> hi again everyone,
>
> I am giving a tech talk soon, and aspire to show an example from
> Chapter 28 of RWH on the STM monad.
>
> My example is just a watered down version of the "transfer wealth"
> example in the book. However it is
> single threaded.
>
> Q: is there an "easy" example of illustrating 2 threads that do
> something (trivial is fine)? I believe that the book constructs a
> thread library/manager of sorts but I wonder if there is something
> easier.
>
> Though I'm not sure how to square this with my example, for now I'd
> love to see an example of starting up
> 2 threads that do something and block until a keystroke is entered
> in the terminal.
>
> My apologies if this is too vague or too much "can you do my
> homework?" !
Certainly, here's a nice one:
map _ [] = []
map f (x:xs) = f x : map f xs
parMap _ [] = []
parMap f (x:xs) = let fx = f x in fx `pseq` fx : map f xs
I realise this isn't what you expected – it's not the STM monad – but
it *is* basic threading, far more basic, and far nicer than firing up
monads and communication between threads.
Bob
More information about the Beginners
mailing list