使用带有线程的锁的明智的小Python示例

时间:2011-03-09 10:10:40

标签: python multithreading parallel-processing python-multithreading

我正在寻找一个合理的(即它在效率方面确实应该是有用的)示例使用python线程&锁。我知道许多标准的小例子,但他们都缺少至少一个属性“小”,“明智”或“使用锁” - 例如:

  • 测试网址列表以检查可用性(合理,小巧,但不使用锁定)
  • 实现一些客户端(每个线程一个)和一个持有变量的服务器(或银行账户或类似的东西) - 小,使用锁,但不明智(实际上有更好的方法来实现它)。
  • 通过线程并行化一个简单的算法(比如大型列表的总和) - 很小,但两者都不合理(因为你不能通过线程并行化)而不使用锁。

2 个答案:

答案 0 :(得分:3)

Doug Hellmann的页面总是一个很好的地址来获得一些例子:

一般用于线程: http://www.doughellmann.com/PyMOTW/threading/index.html

或者如果你可能更喜欢多处理(例如GIL命中你,或者你喜欢在多个处理器上分配你的负载): http://www.doughellmann.com/PyMOTW/multiprocessing/index.html

答案 1 :(得分:1)

Python's Queue moduleproducer/consumer问题队列的小型但同步高效实现的一个很好的例子。