Python 中实现多线程进度条

2023-02-27 00:00:00 python 多线程 进度条

在 Python 中实现多线程进度条,可以使用 tqdm 库。tqdm 是一个快速、可扩展的 Python 进度条库,可以用于迭代器的包装器,可以在终端或 Jupyter Notebook 中显示进度条。以下是一个简单的使用 tqdm 实现多线程进度条的示例代码:

import threading
from tqdm import tqdm
import time

class MyThread(threading.Thread):
    def __init__(self, name, delay):
        threading.Thread.__init__(self)
        self.name = name
        self.delay = delay

    def run(self):
        for i in tqdm(range(100), desc=self.name):
            time.sleep(self.delay)

def main():
    threads = []
    threads.append(MyThread("Thread 1", 0.02))
    threads.append(MyThread("Thread 2", 0.03))
    threads.append(MyThread("Thread 3", 0.05))

    for t in threads:
        t.start()

    for t in threads:
        t.join()

if __name__ == '__main__':
    main()

在这个示例中,我们定义了一个继承自 threading.Thread 的类 MyThread,它接受一个线程名称 name 和一个延迟时间 delay,在 run() 方法中循环执行 tqdm(range(100), desc=self.name),即使用 tqdm 显示进度条。

在主程序中,我们创建了 3 个 MyThread 线程,并启动和加入线程列表 threads。最后,我们使用 join() 方法等待所有线程执行完成。

需要注意的是,在实际开发中,需要根据实际情况调整进度条的参数,例如进度条的长度、刷新频率等,以及使用进度条的样式、颜色等参数进行美化。同时,还需要考虑多线程的并发访问和线程安全等问题。因此,在实际开发中,需要进行性能测试和性能优化,并使用线程锁等机制确保多线程的安全性和稳定性。

相关文章