python 多线程运行 串行或并行

我们知道在 python 中运行多线程程序很简单,只需要几步,创建线程,start线程即可,下面简单说下多线程的串行或者并行的使用示例:

# -*- coding: utf-8 -*-
# @Time : 2024-01-27 14:03
import threading
import time
def run(name:str) -> None:
time.sleep(3)
print("Thread: {} is running!\n".format(name))
time.sleep(3)
def serial_threads_run():
print("serial threads running...")
start = time.time()
for i in range(5):
t = threading.Thread(target=run, args=("Thread-"+str(i),))
t.start()
t.join()
print("time cost: {}s".format(round(time.time()-start, 2)))
def parallel_threads_run():
print("parallel threads running...")
start = time.time()
threads_list = []
for i in range(5):
t = threading.Thread(target=run, args=("Thread-"+str(i),))
threads_list.append(t)
t.start()
for t in threads_list:
t.join()
print("time cost: {}s".format(round(time.time() - start, 2)))
if __name__ == "__main__":
serial_threads_run()
# parallel_threads_run()

运行串行的结果:

serial threads running...
Thread: Thread-0 is running!
Thread: Thread-1 is running!
Thread: Thread-2 is running!
Thread: Thread-3 is running!
Thread: Thread-4 is running!
time cost: 30.03s

可以看到,我们在每个线程内让线程休眠6s,5个线程如果串行就是30s,外加其他的一些时间,所以在30s左右。

运行并行的结果:

parallel threads running...
Thread: Thread-3 is running!
Thread: Thread-1 is running!
Thread: Thread-0 is running!
Thread: Thread-2 is running!
Thread: Thread-4 is running!
time cost: 6.01s

可以看到总共就是6s左右,即使5个线程,一起并发也是并发在跑。

posted on   进击的davis  阅读(151)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
历史上的今天:
2021-01-27 成功启动linux下的service-记录

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示