<story><title>Parallel tasks in Python: concurrent.futures</title><url>https://vinta.ws/code/parallel-tasks-in-python-concurrent-futures.html</url></story><parent_chain></parent_chain><comment><author>pletnes</author><text>One common misconception (or should I say, overgeneralization) is repeated in the article: threads are always unsuited to CPU intensive work.&lt;p&gt;For instance, most numpy operations release the GIL, meaning that you can perform heavy computation on multiple threads simultaneously. Certain other C extensions do the same, including some bits of the standard library. The usual caveats apply about threading bugs, of course.&lt;p&gt;Another detail is that numpy linked to e.g Intel MKL will multithread some operations by default. Running multiple threads-in-threads is likely to cause slowdown.</text></comment>
<story><title>Parallel tasks in Python: concurrent.futures</title><url>https://vinta.ws/code/parallel-tasks-in-python-concurrent-futures.html</url></story><parent_chain></parent_chain><comment><author>orf</author><text>&amp;gt; posted in Jan. 2017&lt;p&gt;Now we have asyncio and awesome libraries like aiohttp[1] you can get a much, much higher throughput than you&amp;#x27;d ever achieve with threads with less code.&lt;p&gt;1. &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;aiohttp.readthedocs.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;aiohttp.readthedocs.io&amp;#x2F;&lt;/a&gt;</text></comment>