> I was a huge python fan until a few years ago when I started making bigger
> and bigger apps in it, and threading them more and more. And I was not
> getting the performance gain from multi-core machines that I would get
> with other languages.
Just out of curiosity, what applications did you feel you needed threads for?
If you're sharing a lot of state between threads, then I have to ask why? It really makes everything so much more difficult. My experience has been that once your program starts using locking, you're not object-oriented any more; you're "mutex-oriented." You can't just freely reuse objects and code because you might violate the constraints that the code was written under.
If you're not sharing a lot of state, then processes are just as good as threads.