我有来自套接字的连续数据流。
我需要即时操作它们,而其他数据仍然存在。
使用yield(类似于生成器)还是使用线程更好?
感谢
答案 0 :(得分:2)
两者都有效。两者都有问题。
David Beazley很好地谈论了两者的问题,并在这个PyCon 2015谈话视频中说明了这一点: https://www.youtube.com/watch?v=MCs5OvhV9S4
简短摘要有点:
很难说一般哪种方法效果最好,完全取决于你的工作量。
答案 1 :(得分:1)
使用线程处理长时间运行的网络(套接字)操作会更好。如果您要在主线程中完成任何活动(或从套接字接收输入后),这将非常有用。
生成器通常不用于网络操作。
答案 2 :(得分:0)
如果在同时处理一部分接收数据时尝试接收更多数据,则需要多线程。这与yield无关,因为在等待接收数据时,屈服仍会阻止同时处理。