Python代码演示协程
时间: 2023-03-26 11:00:53 浏览: 146
好的,我可以回答这个问题。协程是一种轻量级的线程,可以在单个线程中实现并发。Python 通过 async/await 语法支持协程。下面是一个简单的协程示例:
```python
import asyncio
async def hello():
print("Hello")
await asyncio.sleep(1)
print("World")
loop = asyncio.get_event_loop()
loop.run_until_complete(hello())
```
这个示例定义了一个协程函数 hello,它打印出 "Hello",然后等待一秒钟,再打印出 "World"。我们使用 asyncio.get_event_loop() 获取事件循环,然后使用 loop.run_until_complete() 运行协程。
相关问题
用Python演示一下协程
好的,以下是用 Python 演示协程的代码:
```python
import asyncio
async def coroutine1():
print("Coroutine 1 started")
await asyncio.sleep(2)
print("Coroutine 1 ended")
async def coroutine2():
print("Coroutine 2 started")
await asyncio.sleep(1)
print("Coroutine 2 ended")
async def main():
print("Main started")
await asyncio.gather(coroutine1(), coroutine2())
print("Main ended")
asyncio.run(main())
```
这段代码定义了两个协程 `coroutine1` 和 `coroutine2`,它们分别会打印一些信息,然后暂停一段时间。`main` 函数会同时运行这两个协程,并在它们都结束后打印一条信息。运行这段代码,你会看到如下输出:
```
Main started
Coroutine 1 started
Coroutine 2 started
Coroutine 2 ended
Coroutine 1 ended
Main ended
```
可以看到,这两个协程是交替执行的,而不是像普通函数那样按顺序执行。这就是协程的特点:它们可以在执行过程中暂停,等待某些事件的发生,然后再继续执行。这种方式可以让程序更加高效地利用 CPU 和 I/O 资源,从而提高性能。
python异步协程
Python中的异步协程是一种并发编程的方式,它允许在单线程中实现并发执行的效果。异步协程可以通过使用`async`和`await`关键字来定义和管理。
在Python 3.5及以上版本中,可以使用`async`关键字定义一个异步协程函数,该函数可以在需要等待某些操作完成时暂停执行,并在操作完成后恢复执行。使用`await`关键字可以暂停异步协程函数的执行,等待一个耗时的操作完成。
下面是一个简单的示例,演示了如何使用异步协程来实现并发执行:
```python
import asyncio
async def task1():
print("Task 1 started")
await asyncio.sleep(1) # 模拟耗时操作
print("Task 1 completed")
async def task2():
print("Task 2 started")
await asyncio.sleep(2) # 模拟耗时操作
print("Task 2 completed")
async def main():
await asyncio.gather(task1(), task2()) # 并发执行task1和task2
asyncio.run(main())
```
运行以上代码,输出结果如下:
```
Task 1 started
Task 2 started
Task 1 completed
Task 2 completed
```
这个示例中,`task1`和`task2`是两个异步协程函数,它们分别模拟了耗时的操作。在`main`函数中,使用`await asyncio.gather()`来并发执行这两个异步协程函数。
阅读全文