背景

jupyter notebook是以ipython为内核的,在编写程序的时候,经常遇到有些高IO的函数在后台运行半天,但是又需要在它运行的时候执行别的任务,因此这就用到了多线程。

其实ipython 已经封装好了多线程工具,只需要调用即可执行

简单使用


from IPython.lib import backgroundjobs as bg
from time import sleep

jobs = bg.BackgroundJobManager()

def func1():
  sleep(1000000)
  return 1

# 创建任务
jobs.new(func1)

# 任务状态
jobs.status()
# Running jobs:
# 0 : <function func1 at 0x7fae1b670c80>

# 执行结果
result=jobs.result(0)

官方代码