作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个协程,我想在 Jupyter 笔记本中将其作为“后台作业”运行。我看过ways to accomplish this using threading ,但我想知道是否也可以连接到笔记本的事件循环中。
例如,假设我有以下类(class):
import asyncio
class Counter:
def __init__(self):
self.counter = 0
async def run(self):
while True:
self.counter += 1
await asyncio.sleep(1.0)
t = Counter()
并且我想执行 run 方法(无限循环),同时仍然能够随时检查 t.counter
变量。有什么想法吗?
最佳答案
以下内容基本上按照我的想法进行,但它确实使用了单独的线程。但是,我仍然可以使用异步原语。
def run_loop():
loop = asyncio.new_event_loop()
run_loop.loop = loop
asyncio.set_event_loop(loop)
task = loop.create_task(t.run())
loop.run_until_complete(task)
from IPython.lib import backgroundjobs as bg
jobs = bg.BackgroundJobManager()
jobs.new('run_loop()')
loop = run_loop.loop # to access the loop outside
关于python - 协程作为 Jupyter notebook 中的后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36895256/
在我的设置中,我试图有一个界面 Table继承自 Map (因为它主要用作 map 的包装器)。两个类继承自 Table - 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
Rust Nomicon 有 an entire section on variance除了关于 Box 的这一小节,我或多或少地理解了这一点和 Vec在 T 上(共同)变体. Box and Vec
我是一名优秀的程序员,十分优秀!