目录
- 一、测试时间对比
- 多线程
- 单线程
- 二、python多线程实现
- 三、阻塞主线程确保所有子进程/线程执行完毕
跑测试的时候想提高效率,多个模型的跑。之前设计的就是for循环,等一个模型跑完另一个跑,不过时间上比较慢。想试试多线程的效果。其实多开几个终端也可以,不过就想用代码实现一下。
一、测试时间对比
多线程
单线程
多线程用了单线程38%的时间完成了任务
二、python多线程实现
thread=[]
for model_name in model_names:
t = Thread(target=run_tests, args=(model_name, dataset_path, same_questions))
thread.append(t)
t.start()
print(f"模型: {model_name} 已启动")
for t in thread:
t.join()
这里创建了一个空列表thread,用于存储后续创建的线程对象。
三、阻塞主线程确保所有子进程/线程执行完毕
t.join() 用于等待线程 t 完成。join() 方法会阻塞主线程,直到线程 t 执行完毕。
通过遍历 thread 列表,代码确保所有线程都完成后,主线程才会继续执行。