@async 默认线程池大小
时间: 2023-05-15 18:03:11 浏览: 350
@async 是Python中一个异步编程相关的装饰器,它可以用来将一个普通函数转换成异步函数。在使用@async时,会使用到一个内置的线程池来处理所有的异步函数,从而实现异步调用。那么,@async 默认线程池大小是多少呢?
实际上,在Python 3.5及之后的版本中,使用@async时内置的线程池大小默认为10。也就是说,当我们使用@async装饰器来定义一个异步函数时,默认会使用一个大小为10的线程池来处理异步调用。
当然,我们也可以通过改变一个特定的配置来改变默认线程池大小。具体方法是,在调用asyncio中的loop.create_task()方法之前调用asyncio.set_event_loop_policy()方法,如下所示:
asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
loop = asyncio.get_event_loop()
loop.set_default_executor(asyncio.ThreadPoolExecutor(max_workers=20))
在上述代码中,我们通过调用asyncio.set_event_loop_policy()方法将默认的事件循环策略设置为DefaultEventLoopPolicy(),并通过调用loop.set_default_executor()方法来设置默认的线程池大小为20。这样,在使用@async装饰器时,就会默认使用大小为20的线程池了。
总之,@async默认线程池大小为10,但我们可以通过一定的配置来改变其大小。
阅读全文