华纳云:怎么用python实现进程,线程和协程

2023-12-22 12:31:42

在Python中,可以使用multiprocessing模块来创建进程,使用threading模块来创建线程,以及使用asyncio模块来创建协程。以下是简单的示例代码演示如何使用Python实现进程、线程和协程:

进程(multiprocessing):

import multiprocessing
import time

def worker():
? ? """子进程要执行的任务"""
? ? print("Worker starts")
? ? time.sleep(2)
? ? print("Worker ends")

if __name__ == "__main__":
? ? # 创建子进程
? ? process = multiprocessing.Process(target=worker)

? ? # 启动子进程
? ? process.start()

? ? # 等待子进程结束
? ? process.join()

? ? print("Main process ends")

线程(threading):

import threading
import time

def worker():
? ? """子线程要执行的任务"""
? ? print("Worker starts")
? ? time.sleep(2)
? ? print("Worker ends")

if __name__ == "__main__":
? ? # 创建子线程
? ? thread = threading.Thread(target=worker)

? ? # 启动子线程
? ? thread.start()

? ? # 等待子线程结束
? ? thread.join()

? ? print("Main thread ends")

协程(asyncio):

import asyncio

async def worker():
? ? """协程要执行的任务"""
? ? print("Worker starts")
? ? await asyncio.sleep(2)
? ? print("Worker ends")

if __name__ == "__main__":
? ? # 创建事件循环
? ? loop = asyncio.get_event_loop()

? ? # 将协程加入事件循环
? ? loop.run_until_complete(worker())

? ? print("Main coroutine ends")

这些示例中,分别使用了multiprocessing、threading和asyncio模块创建了进程、线程和协程。需要注意的是,进程和线程是并行执行的,而协程是在单线程内的异步执行。

在实际应用中,要根据任务的性质和需求选择使用进程、线程还是协程。例如,IO密集型任务可以使用协程,而CPU密集型任务可能更适合使用进程。

文章来源:https://blog.csdn.net/YOKEhn/article/details/135149338
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。