我正在寻找一个使用 python 线程和锁的明智的(即它在效率方面应该非常有用)的例子。我知道许多标准的小例子,但它们都缺少至少一个属性“小”、“明智”或“使用锁”——例如:
- 测试 URL 列表以检查可用性(合理、小,但不使用锁)
- 实现几个客户端(每个线程一个)和一个保存变量(或银行帐户或类似的东西)的服务器 - 小,使用锁,但不明智(实际上有更好的方法来实现这一点)。
- 通过线程并行化一个简单的算法(比如一个大列表的总和)——很小,但都不明智(因为你不会通过线程并行化)并且不使用锁。
我正在寻找一个使用 python 线程和锁的明智的(即它在效率方面应该非常有用)的例子。我知道许多标准的小例子,但它们都缺少至少一个属性“小”、“明智”或“使用锁”——例如:
Doug Hellmann 的页面始终是获取一些示例的好地址:
对于一般线程:http: //www.doughellmann.com/PyMOTW/threading/index.html
或者,如果您可能更喜欢多处理(例如 GIL 击中您,或者您希望将负载分布在多个处理器上): http: //www.doughellmann.com/PyMOTW/multiprocessing/index.html
Python 的 Queue 模块是一个很好的例子,它为生产者/消费者问题提供了一个小型但同步高效的队列实现。