如何在扭曲的缓冲数据上运行多个线程?
问题描述:
Image of an abstract model如何在扭曲的缓冲数据上运行多个线程?
我已经使用python-socketIO实现了这个模型,但是我无法在扭曲中做类似的事情。我有一个数据源,我用8192字节的块读取这个数据。这是二进制数据,因此需要在将它发送给客户端之前进行处理。但是我无法停止输入数据进行处理。在python-socketIO中,我用这个函数来处理这个数据作为后台任务,而我继续获取更多的数据。任何想法如何使用python的扭曲库来做类似的事情。
答
“背景任务”我想你是指一个线程。您可以使用Twisted使用线程。涉及最少概念的最多方法是deferToThread
:
from twisted.internet.protocol import Protocol
from twisted.internet.threads import deferToThread
class YourProtocol(Protocol):
def dataReceived(self, data):
d = deferToThread(your_process_data, data)
d.addCallback(your_result_handler)
d.addErrback(your_error_handler)