📜  同时运行2个循环python(1)

📅  最后修改于: 2023-12-03 15:37:10.348000             🧑  作者: Mango

同时运行2个循环 Python

有时候,您可能需要同时运行 2 个循环 Python 以进行不同的任务。本文将介绍如何实现这个目标。

方法一:使用多线程

使用多线程是一种同时运行 2 个或更多循环 Python 的有效方法。下面是一个使用多线程同时运行 2 个循环 Python 的示例代码:

import threading

def worker1():
    for i in range(10):
        print("worker1: ", i)

def worker2():
    for i in range(10):
        print("worker2: ", i)

t1 = threading.Thread(target=worker1)
t2 = threading.Thread(target=worker2)

t1.start()
t2.start()

t1.join()
t2.join()

这个例子中,我们使用 threading 模块创建了两个线程分别运行名为 worker1worker2 的函数。使用 t1.start()t2.start() 启动这两个线程,并使用 t1.join()t2.join() 等待它们完成。

方法二:使用 asyncio 库

另一种同时运行 2 个循环 Python 的方法是使用 asyncio 库。这个库提供了一种协程的方式,可以在单个线程中运行多个任务。下面是一个使用 asyncio 库同时运行 2 个循环 Python 的示例代码:

import asyncio

async def worker1():
    for i in range(10):
        print("worker1: ", i)
        await asyncio.sleep(0.1)

async def worker2():
    for i in range(10, 20):
        print("worker2: ", i)
        await asyncio.sleep(0.1)

async def main():
    await asyncio.gather(worker1(), worker2())

asyncio.run(main())

这个例子中,我们创建了两个协程函数 worker1worker2,并使用 asyncio.gather 函数同时运行它们。在每个协程函数中,我们使用 await asyncio.sleep(0.1) 使每个循环在每次迭代之间暂停 0.1 秒,以便我们可以看到这两个任务同时运行。最后,我们使用 asyncio.run(main()) 运行这个程序。

总结

本文介绍了两种同时运行 2 个循环 Python 的方法:使用多线程和使用 asyncio 库。您可以选择其中一种或根据实际需求选择适当的方法。