On Sun, Jan 24, 2010 at 07:34:45PM +0000, Sad Clouds wrote:
>I don't have any experience of Erlang. I've heard it was designed with
>concurrency in mind, however since it runs on top of Unix, how does it
>interface operating system to support concurrency? How does it map to pthreads
>and what advantages does it have over native pthreads library or OpenMP?
If your experience of concurrency is limited to pthreads & OpenMP then
Erlang is going seem very different: Erlang concurrency is message
passing based, the only connections between threads are the messages
they can exchange. This is a completely different concurrency model to
either pthreads (thread based concurrency where you have to explicity
lock bits of memory with mutexes & remember to use them if you want to
stop threads stomping on shared objects) or OpenMP (which is a higher
level API that gives you task / data parallelism in a shared memory
system).
The language is not c-like at all, being an early functional
language. It's not as expressive as Haskell, but the simplicity makes
up for that.
There's a fairly good summary at
http://en.wikipedia.org/wiki/Erlang_%28programming_language%29
Phil
--
http://www.kantaka.co.uk/ .oOo. public key:
http://www.kantaka.co.uk/gpg.txt