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 2024-01-27 14:29  进击的davis  阅读(40)  评论(0编辑  收藏  举报

导航