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有乙個...