Matt Joiner, 11.02.2012 03:24:
Threading is a tool (the most popular, and most flexible tool) for concurrency and parallelism. Compared to forking, multiprocessing, shared memory, mmap, and dozens of other auxiliary OS concepts it's also the easiest.
Sure, "easy" as in "nothing is easier to get wrong". You did read my post on this matter, right? I'm yet to see a piece of non-trivially parallel code that uses threading and is known to be completely safe under all circumstances. And I've seen a lot.
Not all problems are clearly chunkable or fit some alternative parallelism pattern. Threading is arguably the cheapest method for parallelism, as we've heard throughout this thread.
Wrong again. Threading can be pretty expensive in terms of unexpected data dependencies, but it certainly is in terms of debugging time. Debugging spurious threading issues is amongst the hardest problems for a programmer.
Just because it can be dangerous is no reason to discourage it. Many alternatives are equally as dangerous, more difficult and less portable.
Seriously - how is running separate processes less portable than threading?
Python is a very popular language.someone mentioned earlier that popularity shouldn't be an argument for features but here it's fair ground. If Python 3 had unrestrained threading
Note that this is not a "Python 2 vs. Python 3" issue. In fact, it has nothing to do with Python 3 in particular. [stripped some additional garbage] Stefan