从asyncio启动线程是错误的吗?

时间:2018-03-24 18:16:46

标签: python-3.x threadpool python-asyncio

loop.run_forever() asyncio启动线程是否合适?这是一个好习惯吗?

我也在asyncio内部使用线程池,单独使用asyncio我无法获得良好的速度,这就是我使用线程池的原因。

即使loop.run_forever()继续永远运行,线程池执行后内存是否可用?

1 个答案:

答案 0 :(得分:2)

asyncio代码开始一个新线程不是一个错误,而是非常无用的操作。

  1. 您应该控制已分叉的线程数。这很重要,因为保持一千个并行线程通常是程序设计出错的标志。
  2. 您经常需要在asyncio代码中获得在线程中执行的计算结果。
  3. 在程序终止时关闭所有活动线程听起来很明智,不是吗?
  4. 内置asyncio loop.run_in_executor()与标准线程池实现公司(concurrent.futures.ThreadPoolExecutor)以非常优雅的方式解决所有问题,请使用它。