多執行緒+執行緒中常見屬性--day34
阿新 • • 發佈:2019-01-02
"""
----多執行緒----
多執行緒也是用於提高程式的效率
多程序
核心是多道技術
本質上就是切換加儲存狀態
當程式IO操作較多 可以提高程式效率
多執行緒
什麼是執行緒
程式的執行線路
相當於與一條流水線,其包含了程式的具體執行步驟
如果我們把作業系統比喻為一個工廠,程序就是車間,先出就是流水線
執行緒和程序的關係
程序中包含了執行改程式需要所有資源,
*程序是一個資源單位,執行緒是CPU的最小執行單位*
每一個程序一旦被建立.就預設開啟了一條執行緒,稱之為主執行緒
一個程序可以包含多個執行緒
程序包含執行緒 而 執行緒依賴程序
為什麼使用執行緒
是為了提高程式效率,
為何不用多程序提高效率? 是因為程序對作業系統的資源耗費非常高
執行緒是如何提高效率的?
多執行緒可以使CPU在一個程序內進行切換,從而提高CPU佔用率
如何使用
兩種開啟執行緒的方式
1.例項化Thread類
2.繼承Thread類 覆蓋run方法
什麼情況下應該開啟多執行緒
當程式中遇到IO的時候
當程式中時純計算任務時 也無法提高效率
程序和執行緒的區別
1.程序對於作業系統的資源耗費非常高,而執行緒相反非常低(比程序低10-100倍)
2.在同一個程序,多個執行緒之間資源是共享的
"""
# 開啟執行緒的第一種方式 from threading import Thread def task(): print("threading running!") t1 = Thread(target=task) t1.start() print("over") # 第二種方式 class MyThread(Thread): def run(self): print("子執行緒 running....") MyThread().start() print("over2")
執行緒中常見屬性
from threading importThread,current_thread,enumerate,active_count import os def task(): print("running..") print(active_count()) t1 = Thread(target=task) t1.start() # 獲取所有執行緒物件列表 print(enumerate()) # 獲取當前執行緒物件 print(current_thread()) # 獲取當前正在執行的執行緒個數 print(active_count())