Linux 拨号vps windows公众号手机端

Python中同时运行多个函数的方法主要有两种:使用线程(threading)或者进程(multiprocessing)。

lewis 5年前 (2020-07-30) 阅读数 6 #VPS/云服务器

1、线程(threading):线程是Python的标准库之一,可以方便地实现多线程并发执行,在Python中,每个线程都运行在自己的GIL(全局解释器锁)上,互不干扰,对于计算密集型任务,使用多线程可以提高程序的执行效率,下面是一个简单的示例代码,演示如何使用线程同时运行多个函数:

import threading
def function1():
    # 函数1的代码
    pass
def function2():
    # 函数2的代码
    pass
创建线程
thread1 = threading.Thread(function1)
thread2 = threading.Thread(function2)
启动线程
thread1.start()
thread2.start()
等待线程结束
thread1.join()
thread2.join()

在上面的代码中,我们首先定义了两个函数function1function2,然后创建了两个线程thread1thread2,分别将它们的目标函数设置为function1function2,接着,我们调用start()方法启动线程,并使用join()方法等待线程结束,这样就可以同时运行多个函数了。

2、进程(multiprocessing):进程是Python的另一个标准库,可以方便地实现多进程并发执行,与线程不同,每个进程都有自己的内存空间和GIL,互不干扰,对于I/O密集型任务,使用多进程可以提高程序的执行效率,下面是一个简单的示例代码,演示如何使用进程同时运行多个函数:

import multiprocessing
def function1():
    # 函数1的代码
    pass
def function2():
    # 函数2的代码
    pass
创建进程池
pool = multiprocessing.Pool()
使用map方法同时运行多个函数
pool.map(function1, [arg1, arg2, arg3])
pool.map(function2, [arg4, arg5, arg6])

在上面的代码中,我们首先定义了两个函数function1function2,然后创建了一个进程池pool,接着,我们使用map()方法将function1function2应用到不同的参数上,从而实现同时运行多个函数,需要注意的是,由于进程之间互不干扰,因此需要将函数的参数传递给进程池。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门