[Python 3.5.2, APScheduler 3.3.1]
APScheduler 启动了一些线程,我想知道为什么。
这是我正在执行的代码(在 PyCharm 中,我还可以在其中绘制线程图):
from apscheduler.schedulers.background import BackgroundScheduler
import time
def process_to_execute():
time.sleep(0.5)
scheduler = BackgroundScheduler()
scheduler.add_job(process_to_execute, 'cron', second="*/1")
scheduler.start()
while True:
time.sleep(1)
为什么 APScheduler 在一个线程就足够的情况下创建这么多线程?
Thread-7 创建于 1.6 秒。它的任务在 2.1 秒时完成。 一个新任务在 2.6 秒时执行:不是立即使用 Thread-7,而是创建了 Thread-8,但任务在 Thread-7 中执行,而 thread-8 为空......这有什么原因吗?
调度器的线程数限制为10。
请您参考如下方法:
APScheduler 使用标准库的 concurrent.futures.ThreadPoolExecutor 这有点懒惰。这就是为什么。
