在Python解释器的后台运行方法

时间:2011-07-28 05:40:46

标签: multithreading python-3.x multiprocessing

我在Python 3.x中创建了一个充当服务器的类。一种方法使用套接字模块管理通过UDP / IP发送和接收数据(数据存储在 self.cmd 中, self.msr 分别)。我希望能够在python解释器 online 中修改 self.msr self.cmd 变量。例如:

>>> from myserver import MyServer
>>> s = MyServer()
>>> s.bakcground_recv_send() # runs in the background, constantly calling s.recv_msr(), s.send_cmd()
>>> process_data(s.msr) # I use the latest received data
>>> s.cmd[0] = 5 # this will be sent automatically
>>> s.msr # I can see what the newest data is

到目前为止, s.bakcground_recv_send()不存在。每次我想看到更新 s.msr 的值时,我都需要手动调用 s.recv_msr() s.recv_msr 使用了阻止套接字),然后调用 s.send_cmd()发送 s.cmd

在这种特殊情况下,哪个模块更有意义:多进程线程? 任何提示我怎样才能最好地解决这个问题?我没有任何进程或线程的经验(只是阅读了很多,但我仍然不确定要走哪条路)。

1 个答案:

答案 0 :(得分:0)

在这种情况下,线程最有意义。简而言之,多处理用于在不同的处理器上运行进程,线程用于在后台执行操作。