擅长:python、mysql、java
<p>Python中的阻塞调用(<code>sleep</code>,等待I/O或锁)释放GIL,允许其他线程在被阻塞时运行,因此所有四个线程都可以<code>sleep</code>并行运行,这就是为什么您会看到5秒的延迟。如果你想看到GIL争用的效果,让线程函数做一些CPU限制的事情,例如</p>
<pre><code>def fun():
for _ in xrange(1000000000):
pass
</code></pre>
<p><code>multiprocessing</code>不会改变<code>sleep</code>情况的任何东西,因为您不是GIL绑定的,但是如果您有多个内核要运行,它会改善CPU绑定情况的挂钟时间。你知道吗</p>