使用带有线程的锁的实用小型 Python 示例
我正在寻找一个使用 python 线程和线程的合理的(即它在效率方面确实有用)示例。锁。我知道许多标准的小示例,但它们都至少缺少“小”、“明智”或“使用锁”属性之一 - 例如:
- 测试 URL 列表以检查可用性(明智、小,但不使用锁)
- 实现一些客户端(每个线程一个)和一个保存变量(或银行帐户或类似内容)的服务器——小型,使用锁,但不明智(实际上有更好的方法来实现这一点)。
- 通过线程并行化一个简单的算法(比如一个大列表的求和)——很小,但两者都不明智(因为你不会通过线程并行化)并且不使用锁。
I am searching for a sensible (i.e. it should really be useful in terms of efficiency) example using python threads & locks. I know many standard small examples but they are all missing at least one of the properties "small", "sensible" or "using locks" -- for example:
- Testing a list of URLs to check availability (sensible, small, but uses no locks)
- Implementing a few clients (one per thread) and a server holding a variable (or bank account or something alike) -- small, uses locks, but not sensible (in practice there are better ways to implement this).
- Parallelzing a simple algorithm via threads (like the summation of a large list) -- small, but both not sensible (cause you wouldnt parallelize via threads) and not using locks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Doug Hellmann 的页面始终是获取一些示例的好地址:
对于一般线程:
http://www.doughellmann.com/PyMOTW/threading/index.html
或者,如果您可能更喜欢多处理(例如,GIL 会影响您,或者您喜欢将负载分配到多个处理器上):
http://www.doughellmann.com/PyMOTW/multiprocessing/index.html
Doug Hellmann's page is always a good address to get some examples:
For threading in general:
http://www.doughellmann.com/PyMOTW/threading/index.html
Or if you may prefer multiprocessing (e.g. the GIL hits you, or you like to distribute your load over multiple processors):
http://www.doughellmann.com/PyMOTW/multiprocessing/index.html
Python 的 Queue 模块 是一个针对生产者/消费者问题的队列的小型但同步高效实现的一个很好的例子。
Python's Queue module is a great example of small, yet, synchronized efficient implementation of a queue for the producer/consumer problem.