我试图一次运行几个线程,因为它们等待来自表调用的响应,所以它可以挂起30秒,这就是我使用线程池而不是进程池的原因。我很好奇是否有任何方法可以在python中实现非阻塞线程?我使用datetime.datetime.now()运行了一个小测试,看起来我的脚本正在等待最多30秒来调用我的下一个concurrent.futures.threadpoolexecutor线程。下面介绍一下我如何运行多个非阻塞线程。
database = Database.Database()
results = {}
table_get_pool = concurrent.futures.ThreadPoolExecutor(max_workers=5)
results.update(collect_attributes(results, table_get_pool.submit(database.dbcallone).result()))
results.update(collect_attributes(results, table_get_pool.submit(database.dbcalltwo).result()))
我知道因为gil线程并不强大但是因为大部分时间这些线程都在0%运行,因为它们等待响应,所以如果我可以避免使用处理池是没有意义的。谢谢!