【发布时间】:2015-06-23 01:18:04
【问题描述】:
我有来自套接字的连续数据流。
我需要在运行中对它们进行操作,而其他数据仍在进行中。
使用yield(类似生成器)还是线程更好?
谢谢
【问题讨论】:
标签: python multithreading generator yield
我有来自套接字的连续数据流。
我需要在运行中对它们进行操作,而其他数据仍在进行中。
使用yield(类似生成器)还是线程更好?
谢谢
【问题讨论】:
标签: python multithreading generator yield
最好使用线程处理长时间运行的网络(套接字)操作。如果您有任何活动要在主线程中完成(或在接收来自套接字的输入之后),这将特别有用。
生成器一般不用于网络操作。
【讨论】:
如果在处理部分接收到的数据同时尝试接收更多数据,则需要多线程。这与产量无关,因为在等待接收数据时,产量仍然会阻止您的同时处理。
【讨论】:
两者都有效。两者都有自己的问题。
David Beazley 很好地谈论了两者的问题,并在这个 PyCon 2015 谈话视频中进行了说明: https://www.youtube.com/watch?v=MCs5OvhV9S4
简短的总结是这样的:
很难说总体上什么最有效,这完全取决于您的工作量。
【讨论】: