亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python多線程?

python多線程?

慕少森 2019-02-22 16:31:08
最近看書上寫的,python解釋器可以“運行”多個線程,但在任一時刻,只有一個線程在運行。 我不理解的是,既然任意時刻只有一個線程在運行,那為什么還是并發編程呢?這樣的話兩個線程運行的時間總和不還是兩個線程的運行時間相加?但是實際上又不是。 請大家幫忙解惑一下,謝謝。
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

多線程用途一般分為兩種,密集計算和密集IO請求。
密集計算,瓶頸在于cup給這個計算的時間片和cpu能跑多快上,這時候一般通過多核并行處理,以及增加該計算的CUP時間片來達到加速計算。這時候python的多線程沒什么卵用。反而會拖慢計算,因為進程的切換也是需要時間的。這部分時間就浪費了。
而IO計算。瓶頸在于你一個請求發送出去的等待時間,一般走internet的tcp請求怎么也要100毫秒,而單進程,時間就白白浪費在等待這個網絡傳輸時延上面了。而多進程通過一次發出多個請求來縮短等待時間,比如你有10個請求跑去每個請求網絡等待時間100ms處理10ms那么單線程需要1100ms,而多進程同時發出10個請求,基本算同時發出 都等待100ms然后處理雖說是多進程但是因為同時只有一個運行基本算100ms那么總共就200ms當你同時并發的連接熟練越多時候效率越高

查看完整回答
反對 回復 2019-03-04
  • 2 回答
  • 0 關注
  • 533 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號