On Tue, Mar 3, 2009 at 10:11 AM, Roman V. Shaposhnik <rvs@sun.com> wrote:
On Tue, 2009-03-03 at 07:19 -0800, David Leimbach wrote:

> My knowledge on this subject is about 8 or 9 years old, so check with your local Python guru....
>
>
> The last I'd heard about Python's threading is that it was cooperative
> only, and that you couldn't get real parallelism out of it.  It serves
> as a means to organize your program in a concurrent manner.
>
>
> In other words no two threads run at the same time in Python, even if
> you're on a multi-core system, due to something they call a "Global
> Interpreter Lock".

I believe GIL is as present in Python nowadays as ever. On a related
note: does anybody know any sane interpreted languages with a decent
threading model to go along? Stackless python is the only thing that
I'm familiar with in that department.

I'm a fan of Erlang.  Though I guess it's technically a compiled virtual machine of sorts, even when it's "escript".

But I've had an absolutely awesome experience over the last year using it, and so far only wishing it came with the type safety of Haskell :-).

I love Haskell's threading model actually, in either the data parallelism or the forkIO interface, it's pretty sane.  Typed data channels even between forkIO'd threads.
 


Thanks,
Roman.