Python将变量传递给线程

时间:2011-11-13 02:07:33

标签: python multithreading

我正在使用线程模块来控制通过套接字发送数据的线程,但是我没有找到合适的解决方案来将数据传递到线程中。我已经尝试了诸如Overriding python threading.Thread.run()之类的东西,但似乎无法让它发挥作用。如果有人有任何建议我会很乐意尝试任何事情:)

谢谢!

2 个答案:

答案 0 :(得分:2)

你正在考虑这个问题。忘掉它恰好是通过套接字发送数据的线程这一事实。数据不需要到达线程,它需要到达在套接字上发送数据的逻辑。

例如,您可以拥有一个包含需要通过套接字发送的内容的队列。套接字写代码从队列中提取消息并将它们发送出套接字。其他代码将消息放入此队列。需要向套接字发送消息的代码不应该知道或关心发生了发送的线程。

答案 1 :(得分:1)

为此使用消息队列。 Python有Queue模块用于在线程之间传递数据,但如果您使用第三方库(如0MQ http://www.zeromq.org),那么您可以将线程拆分为单独的进程,它将以相同的方式工作。 / p>

多线程处理比线程化更容易,但如果必须使用线程,请尽可能避免锁定和共享数据。而是使用像Queue这样的预先编写的模块来限制可能出现细微错误的方式。