📅  最后修改于: 2023-12-03 15:19:32.315000             🧑  作者: Mango
在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()
以上程序中,func1
和func2
分别为要执行的两个函数。在创建Thread
对象时,target
参数传入要执行的函数。然后调用start
方法启动线程。最后使用join
方法等待线程结束。
执行以上程序,将会同时输出func1
和func2
的执行结果。
使用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()))
以上程序中,coro1
和coro2
分别为要执行的两个协程。使用asyncio.sleep
方法模拟执行一段时间的任务。使用asyncio.gather
方法同时运行多个协程。最后使用run_until_complete
方法执行全部协程。
执行以上程序,将会同时输出coro1
和coro2
的执行结果。
使用多线程或协程可以方便地实现同时运行多个函数。需要注意的是,多线程需要考虑线程安全问题,协程需要使用asyncio
提供的异步方法。