APScheduler 开启更多线程

APScheduler opens more threads

[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,这有点懒惰。这就是为什么。