"""主程序結束後,子程序會結束不再執行,可以呼叫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 乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒,但至少有乙個執行緒。執行緒是作業系統可識別...