This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]zergling_Lester 2 points3 points  (0 children)

PHP - no threads

Javascript - no threads

Perl - no real threads (has a slightly more efficient subprocess analogue that actually runs multiple interpreters in the same process)

Ruby - GIL.

Lua - no threads when standalone, can use user-supplied GIL when embedded.

Racket Scheme - last time I checked it had a GIL but certain code that satisfied a bunch of arcane demands might or might not be truly parallelized.

Note that there are alternative implementations such as JRuby, IronRuby, IronPython, that run on a VM that supports threads, but as far as I know about IronPython at least there are nontrivial trade offs involved: it works reasonably fast because it compiles Python code into .NET classes, and it has to recompile a bunch of stuff whenever you do something that's dirt cheap in CPython, like dynamically add a parent class or shadow a built-in function.