我写了一些使用锁和条件变量的自定义代码,我观察到 Python 2.x 和 3.x 之间的同步开销有显着差异:
- 2.6.8, 2.7.6: 14~54ms
- 3.3.4:<1毫秒
这是有原因的吗?一个众所周知的解释?仅在 3.x 中解决的 CPython 错误?
如果有人马上就知道答案,那是非常欢迎的。
否则请发表评论,我会破解一些测试代码。
请您参考如下方法:
他们在 3.2 中做了很多工作来提高多线程性能以及如何 GIL功能:
http://docs.python.org/dev/whatsnew/3.2.html#multi-threading
在对您的代码一无所知的情况下,这是我的猜测。
