欢迎访问宙启技术站
智能推送

Python中如何使用多线程进行并行计算

发布时间:2023-12-04 04:23:05

在Python中,可以使用threading模块来创建和管理线程,实现多线程并行计算。下面是一个简单的例子,演示了如何使用多线程来计算一个列表中各元素的平方。

import threading

# 定义一个线程类
class SquareThread(threading.Thread):
    def __init__(self, num):
        threading.Thread.__init__(self)
        self.num = num
    
    def run(self):
        square = self.num ** 2
        print(f'Square of {self.num} is {square}')

if __name__ == '__main__':
    num_list = [1, 2, 3, 4, 5]
    
    # 创建线程列表
    thread_list = []

    # 创建线程并添加到线程列表
    for num in num_list:
        thread = SquareThread(num)
        thread_list.append(thread)

    # 启动线程
    for thread in thread_list:
        thread.start()

    # 等待所有线程结束
    for thread in thread_list:
        thread.join()

在上面的代码中,我们首先定义了一个SquareThread类,继承自threading.Thread。在__init__方法中,我们接收一个数字作为参数,并保存到self.num中。run方法是线程的主要执行逻辑,在这里我们计算了数字的平方,并打印结果。

if __name__ == '__main__':这个条件下,我们创建了一个包含一些数字的列表num_list。然后,我们创建了一个空的线程列表thread_list

接下来,我们使用num_list中的每个数字实例化SquareThread线程,并把它们添加到线程列表中。

之后,我们遍历线程列表,启动每个线程。

最后,我们再次遍历线程列表,调用join()方法等待所有线程的执行完成。

当运行上述代码时,输出结果将会是:

Square of 1 is 1
Square of 2 is 4
Square of 3 is 9
Square of 4 is 16
Square of 5 is 25

这个例子中,我们创建了多个线程来并行计算数字的平方,每个线程独立地执行计算操作,从而实现了并行计算的效果。