執行緒程序比較

2021-09-17 19:35:42 字數 936 閱讀 1155

"""

主程序結束後,子程序會結束不再執行,可以呼叫join

穿件執行緒和程序差不多

執行緒需要開啟,可以阻塞

"""import threading,time

def t_fun():

"""子執行緒入口函式"""

print('++++++++++++++++++++++')

time.sleep(1)

def time_check(fun_p):

"""統計時間的裝飾函式"""

def fun():

start = time.time()

# 執行被轉勢函式

fun_p()

end = time.time()

print(end - start)

return fun

@time_check

def main():

"""執行緒併發實現測試"""

# 穿件空列表

lia =

for th in range(5):

# 建立執行緒,並指明入口函式

t = threading.thread(target=t_fun)

# 開啟執行緒

t.start()

# 追加到空列表,使每個執行緒呼叫阻塞方法,即主程序等待子程序

# 阻塞主線程,防止主線程結束子執行緒隨之結束

for l in lia:

l.join()

@time_check

def main_no_t():

"""沒有執行緒耗費時間測試"""

for i in range(5):

t_fun()

if __name__ == '__main__':

main()

# main_no_t()# 5.001825571060181

程序和執行緒的比較

排程 執行緒是cpu排程和分派的基本單位。擁有資源 程序是系統中程式執行和資源分配的基本單位。執行緒自己一般不擁有資源 除了必不可少的程式計數器,一組暫存器和棧 但它可以去訪問qi其所屬組的資源,如程序 段,資料段以及系統資源 已開啟的檔案,i o裝置等 系統開銷 同一程序中的多個執行緒可共享同一位...

程序與執行緒的比較

程序 是資源分配的基本單位。所有與該程序有關的資源,都被記錄在程序控制塊pcb中。程序 處理機的排程單位,擁有完整的虛擬位址空間。當程序發生排程時,不同的程序擁有不同的虛擬位址空間,而同一程序內的不同執行緒共享同一位址空間。聯絡 1 執行緒與資源分配無關,屬於某乙個程序,並與其他執行緒共享程序資源。...

執行緒和程序的比較

乙個程式就是乙個程序,而乙個程式中的多個任務則被稱為執行緒。程序是表示資源分配的基本單位,又是排程執行的基本單位。執行緒是程序中執行運算的最小單位,亦即執行處理機排程的基本單位。程序和執行緒的關係 1 乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒,但至少有乙個執行緒。執行緒是作業系統可識別...