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