【发布时间】:2014-02-21 21:31:23
【问题描述】:
我有一个扭曲的 TCPServer,它有大量的客户端连接。我需要能够让一个主客户端向该服务器发出命令,以非阻塞方式向所有其他客户端连接发送消息。换句话说,服务器应该有一个命令处理程序(建立在 lineReceived 之上),它从主客户端接收一个特殊命令,然后启动一个线程或进程来循环所有其他客户端并向每个客户端发送一个命令(sendLine)这些客户中。主客户端的命令处理程序应在启动线程后立即返回。问题是在twisted 中对sendLine 的任何调用都必须从主reactor 线程中调用,因此必须使用callFromThread 来完成。那么我的主命令处理程序是否可以执行以下操作:
def handle_master_command(self,command):
deferred=reactor.deferToThread(myfunc)
return
def myfunc(self):
for client in other_clients:
reactor.callFromThread(send_stuff_to_client,client,stuff_to_send)
显然这只是伪代码,但这样的东西会起作用吗?
【问题讨论】:
标签: python multithreading twisted