草庐IT

deferToThread

全部标签

python - 如何从 Twisted 的 deferToThread API 向 Deferred 添加超时?

fromtwisted.internetimportreactorfromtwisted.internetimportthreadsfromtwisted.internetimportdeferimporttimedefworker(arg):print'Helloworld'time.sleep(10)return1defrun():print'Startingworkers'l=[]forxinrange(2):l.append(threads.deferToThread(worker,x))returndefer.DeferredList(l)defres(results):pr

python - 扭曲: `defer.execute` 和 `threads.deferToThread` 之间的区别

twisted中defer.execute()和threads.deferToThread()有什么区别?两者都采用相同的参数-一个函数和调用它的参数-并返回一个deferred,它将与调用函数的结果一起触发。threads版本明确声明它将在线程中运行。但是,如果defer版本没有,那么调用它有什么意义呢?在react器中运行的代码永远不会阻塞,因此它调用的任何函数都必须不阻塞。在这一点上,你可以用defer.succeed(f(*args,**kwargs))而不是defer.execute(f,args,kwargs)相同的结果。 最佳答案