python3 多執行緒,執行緒鎖

2022-02-01 06:31:33 字數 553 閱讀 8194

python使用多執行緒, 不一定執行速度快,這裡引入gil(global interpreter lock)

python直譯器中任意時刻都只有乙個執行緒在執行;

gil執行過程:

1). 設定乙個gil;

2). 切換執行緒去準備執行任務(runnale就緒狀態);

3). 執行;

4). 可能出現的狀態:

- 執行緒任務執行結束;

- time.sleep()

5). 將執行緒設定為睡眠狀態;

5). 解gil的鎖;

多執行緒的應用場景: i/o密集型(input, output) — 爬蟲

不建議使用多執行緒的場景: 計算密集型(cpu一直占用)

1). 理論上多執行緒執行任務是不能獲取返回結果的, 因此需要乙個容器來儲存產生的資料;

2). 容器該如何選擇? list(棧, 佇列), tuple(元組是不可變的, 不可使用),

set(集合缺省會去重, 所以不選擇), dict

選擇佇列型別儲存(fifo===first input first output) 

Python3多執行緒

學習python執行緒 python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...

python3 多執行緒

多執行緒簡介 執行緒 thread 也稱輕量級程序,時作業系統能夠進行運算排程的最小單位,它被包涵在程序之中,時程序中的實際運作單位。執行緒自身不擁有資源,只擁有一些在執行中必不可少的資源,但他可與同屬乙個程序的其他執行緒共享程序所擁有的全部資源。乙個執行緒可以建立和撤銷另乙個執行緒,同一程序中的多...

Python3多執行緒程式設計

多執行緒使用,可以讓乙個執行緒訪問某個資源,其他執行緒給他通過queue發任務,這樣避免對共享的資源編寫繁瑣的加鎖解鎖 threading包也提供了 locks,events,condition variables,and semaphores這些工具,可以做多執行緒間的資源共享.python有乙個...