再阅读之前请先参考
之前的多线程,用的是 3.5
的语法,loop
,这次我们使用 3.7
的语法。
相关参考
考虑这样一个场景。
在量化中,主程序接收数据,然后分配给每一个线程池中的线程,然后线程来调用协程处理。
这里直接使用代码展示。
正确的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import asyncio
from concurrent.futures import ThreadPoolExecutor
async def t1(): await asyncio.sleep(5) print(1)
def t(): asyncio.run(t1())
if __name__ == '__main__': pool = ThreadPoolExecutor(max_workers=5)
while 1: # pool.submit(t) # 这两个处理是一样的 pool.submit(asyncio.run, t1())
|
错误的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import asyncio
from concurrent.futures import ThreadPoolExecutor
async def t1(): await asyncio.sleep(5) print(1)
if __name__ == '__main__': pool = ThreadPoolExecutor(max_workers=5)
while 1: pool.submit(asyncio.run(t1()))
|