擅长:python、mysql、java
<p>如果你看一下<a href="http://hg.python.org/cpython/file/db20367b20de/Objects/setobject.c#l701">^{<cd1>} method in the CPython source</a>,你会发现它没有释放GIL。在</p>
<p>这意味着在CPython进程中一次只能发生一个<code>set.pop</code>。在</p>
<p>因为<a href="http://hg.python.org/cpython/file/db20367b20de/Objects/setobject.c#l708">^{<cd1>} checks if the set is empty</a>,你只能通过尝试从一个空的集合中弹出来引起<code>IndexError</code>。在</p>
<p>所以不,不能通过使用CPython从多个线程中弹出一个集合来破坏数据。在</p>