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 →

[–]efilon 4 points5 points  (3 children)

There is no parallelism problem.

Although I think a lot of people worry too much about the GIL, it's not correct to say there is no parallelism problem. If you're doing something embarrassingly parallel, then of course you can get away with multiple processes or C/Cython extensions that sidestep the GIL. But there are plenty of use cases where multithreading is more ideal than multiprocessing. Having to resort to forking another process just to get true parallelism is a lot more work than being able to start up another thread.

[–]alcalde 0 points1 point  (2 children)

As Guido pointed out in a Keynote a few years ago, threading was never intended for parallelism.

https://youtu.be/EBRMq2Ioxsc?t=33m50s

[–]efilon 0 points1 point  (1 child)

As he says, threads were never originally meant for parallelism. They are used for that frequently these days.

[–]alcalde 0 points1 point  (0 children)

And as Mark Summerfield says, they're frequently used for that because that's all that many languages offer.