python 多线程异步
时间: 2024-09-24 09:25:52 浏览: 23
Python 中的多线程异步主要是通过 `threading` 模块和 `asyncio` 框架来实现的。`threading` 提供了创建并管理线程的能力,而 `asyncio` 则专注于非阻塞式的并发编程,特别是事件循环和协程。
在 `threading` 中,你可以创建一个新的线程来运行函数,这种方式被称为同步多线程,因为主线程会等待新线程完成后再继续执行。例如:
```python
import threading
def worker():
# 线程任务
print('Worker thread is running')
thread = threading.Thread(target=worker)
thread.start() # 启动线程
```
而在 `asyncio` 中,异步编程强调事件驱动和非阻塞IO操作,允许同时处理多个任务。它通常配合 `await` 关键字使用,用于定义协程。比如,使用 `asyncio.gather()` 可以并发地启动多个协程:
```python
import asyncio
async def async_worker():
await asyncio.sleep(1) # 模拟耗时操作
print('Async worker done')
async def main():
tasks = [async_worker(), async_worker()]
await asyncio.gather(*tasks)
asyncio.run(main()) # 运行主协程
```