📜  python同时运行2个函数-Python(1)

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

Python同时运行2个函数

在Python中,可以使用多线程或协程来实现同时运行多个函数。本文将介绍如何使用这两种方式同时运行两个函数。

多线程

使用Python的threading模块可以创建多个线程,每个线程可以执行一个函数。以下是一个示例程序,同时运行两个函数:

import threading
import time

def func1():
    for i in range(5):
        print("func1: %d" % i)
        time.sleep(1)

def func2():
    for i in range(5):
        print("func2: %d" % i)
        time.sleep(1)

t1 = threading.Thread(target=func1)
t2 = threading.Thread(target=func2)

t1.start()
t2.start()

t1.join()
t2.join()

以上程序中,func1func2分别为要执行的两个函数。在创建Thread对象时,target参数传入要执行的函数。然后调用start方法启动线程。最后使用join方法等待线程结束。

执行以上程序,将会同时输出func1func2的执行结果。

协程

使用Python的asyncio模块可以创建协程,协程可以在一个线程中并发执行多个任务。以下是一个示例程序,同时运行两个协程:

import asyncio

async def coro1():
    for i in range(5):
        print("coro1: %d" % i)
        await asyncio.sleep(1)

async def coro2():
    for i in range(5):
        print("coro2: %d" % i)
        await asyncio.sleep(1)

loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(coro1(), coro2()))

以上程序中,coro1coro2分别为要执行的两个协程。使用asyncio.sleep方法模拟执行一段时间的任务。使用asyncio.gather方法同时运行多个协程。最后使用run_until_complete方法执行全部协程。

执行以上程序,将会同时输出coro1coro2的执行结果。

小结

使用多线程或协程可以方便地实现同时运行多个函数。需要注意的是,多线程需要考虑线程安全问题,协程需要使用asyncio提供的异步方法。