由浅入深走进Python异步编程【多进程】(含代码实例讲解 || multiprocessing、异步进程池、进程通信)
import multiprocessing
import time
def long_running_function(num):
print(f"Process {num} is running...")
time.sleep(2)
print(f"Process {num} is done.")
return f"Result of process {num}"
def main():
print("Starting main process.")
# 创建进程池
with multiprocessing.Pool(processes=4) as pool:
# 异步执行多个进程
async_results = [pool.apply_async(long_running_function, (i,)) for i in range(4)]
# 查看进程状态
print("Waiting for complete...")
for async_result in async_results:
print(async_result.get()) # 获取进程结果,如果进程未完成,将等待其完成
print("All processes are completed.")
if __name__ == "__main__":
main()
这段代码使用了Python的multiprocessing
库来创建一个进程池,并以异步的方式执行多个进程。Pool
对象管理一个进程池,其中processes
参数指定了进程池中的进程数。apply_async
方法用于异步提交任务给进程池执行。通过async_result.get()
方法,主进程可以等待异步执行的结果。这是一个简单的异步多进程编程示例。
评论已关闭