1. 程式人生 > >多執行緒+執行緒中常見屬性--day34

多執行緒+執行緒中常見屬性--day34

"""
----多執行緒----

多執行緒也是用於提高程式的效率

多程序
核心是多道技術
本質上就是切換加儲存狀態
當程式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 import
Thread,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())