在我的工作中,他们“利用”龙卷风,但他们没有异步库。是什么让库异步以便它更适合龙卷风之类的东西?有没有什么好的例子,或者我猜你有没有做某事__enter__
或者__exit__
可以表明你没有阻止?
我发现很难将一些材料拼凑在一起。
在我的工作中,他们“利用”龙卷风,但他们没有异步库。是什么让库异步以便它更适合龙卷风之类的东西?有没有什么好的例子,或者我猜你有没有做某事__enter__
或者__exit__
可以表明你没有阻止?
我发现很难将一些材料拼凑在一起。
如果您的库不是异步的并且不支持在 tornado ioloop 中运行,那么您唯一能做的就是在其他线程中运行这些任务。
本质上,有两种选择,具体取决于您是否要接收返回值:
如果your_task_func
是您想要卸载到另一个线程的同步任务,基本上执行以下操作:
def callback(future):
# here you want to do some stuff with the value future.result()
EXECUTOR.submit(
your_task_func
).add_done_callback(
lambda future: tornado.ioloop.IOLoop.instance().add_callback(
partial(callback, future)))
可以在这篇不错的文章中找到有关此的更多详细信息。
关于马库斯
异步---你是说线程吗?如果你想同时运行一些代码,你可以使用已经内置在标准库threading
中的模块(或更底层的模块) 。例如:thread
import threading
import time
def counter():
c = 0
while True:
print c
time.sleep(1)
c += 1
counterThread = threading.Thread(target=counter, name="counter")
counterThread.daemon = True # if False (default), Python interpreter won't quit until the thread ends
counterThread.start()
锁定对象是用 and 实现的__enter__
,__exit__
因此您可以with
根据您的问题使用关键字。
另请参阅第三方线程库。