1. 程式人生 > 其它 >Python3-程序執行緒入門基礎實踐

Python3-程序執行緒入門基礎實踐

技術標籤:Pythonpython

宣告:參考B站自學成長記錄
https://www.bilibili.com

程序 / 執行緒概念

程序:(Process)
是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎

執行緒:(thread)
是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位
一條執行緒指的是程序中一個單一順序的控制流,一個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務

程式碼示例

# coding=utf-8
from threading import Thread
from multiprocessing import Process
import time


def t_run():  # 執行緒函式
    time.sleep(1)


def threed_console(num):
    """
    多執行緒示例
    :param num: 表示啟動多少個執行緒
    :return: None
    """
    t_list = []     # 執行緒列表:存放多個已啟動的執行緒

    t_s_time = time.time()      # num個執行緒執行開始時間
    for i in range(num):    # 迴圈建立num個執行緒
        t = Thread(target=t_run,)       # 建立執行緒
        t.start()                       # 啟動執行緒
        t_list.append(t)                # 將啟動的執行緒新增到 執行緒列表
    [tt.join() for tt in t_list]        # join方法讓主執行緒等待所有子執行緒結束後, 主執行緒再結束
    t_e_time = time.time()      # num個執行緒執行結束時間

    # 統計執行結果
    print("{}個執行緒總耗時:{:.2f}s".format(num, t_e_time - t_s_time))


def p_run():  # 程序函式
    time.sleep(1)


def process_console(num):
    """
    多程序示例
    :param num:  表示啟動多少個程序
    :return:  None
    """
    p_list = []     # 程序列表,存放多個已啟動的程序

    p_s_time = time.time()  # num個程序執行開始時間
    for i in range(num):    # 迴圈啟動num個執行緒
        p = Process(target=p_run,)  # 建立程序
        p.start()                   # 啟動程序
        p_list.append(p)            # 將啟動的程序新增到 程序列表

    [pp.join() for pp in p_list]    # join方法讓主程序等待所有子程序結束後, 主程序再結束
    p_e_time = time.time()          # # num個程序執行結束時間

    # 統計執行結果
    print("{}個程序總耗時:{:.2f}s".format(num, p_e_time - p_s_time))


if __name__ == '__main__':
    threed_console(5)
    process_console(5)

執行結果
在這裡插入圖片描述