欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

【Python】線程和協程分別適用于什么情況?

系統 1669 0
原文鏈接: https://zhuanlan.zhihu.com/p/35179605

(現在人工智能非常火爆,很多朋友都想學,但是一般的教程都是為博碩生準備的,太難看懂了。最近發現了一個非常適合小白入門的教程,不僅通俗易懂而且還很風趣幽默。所以忍不住分享一下給大家。

? 點這里https://www.cbedai.net/ialexanderi可以跳轉到教程。)

?

鏈接:https://zhuanlan.zhihu.com/p/35179605

前言

關于網絡IO,同步,異步或者阻塞非阻塞永遠是繞不開的話題。對于爬蟲這種IO密集型任務,如果使用同步的方式進行網絡請求,只要某個請求被阻塞了,則會造成整個流程時間的拖長,極大的降低了爬蟲的速度。這篇文章將介紹Python實現異步的其中一種方式,協程。并通過一些實例來說明協程的用法,以及好處。

基本知識

?

  • 同步,異步

上文提到了同步與異步兩個術語,那么這兩者到底有什么區別呢?拿爬蟲場景舉個例子,比如說現在爬蟲需要點開十個鏈接,IO過程就是打開這十個鏈接的過程,CPU負責點擊鏈接的事件。顯而易見,點擊事件是非常快速的,而鏈接顯示的過程是比較緩慢的。同步IO就是爬蟲點擊了一個網址,等到獲得了徹底響應,才去點擊下一個網址。而異步IO就是爬蟲點擊了一個網址,不等獲得響應,立刻點擊下一個網址,最后等待響應。兩者對比,異步的效率會更加高一些。

  • IO密集與計算密集

IO密集型任務指的是磁盤IO或者網絡IO占主要的任務,計算量很小,比如請求網頁,讀寫文件等。計算密集型任務指的是CPU計算占主要的任務,比如圖形渲染中矩陣的運算(當然現在都用GPU來完成)。

  • 為什么不使用多線程

一般來說,解決并行事件的傳統思路可能是使用多線程。 但是多線程有幾個劣勢,第一是資源的開銷,第二是由于Python GIL(全局解釋鎖)的存在,多線程并非并行執行,而是交替執行,造成多線程在計算密集型任務的效率并不高。

  • 協程是什么

協程的概念比較容易理解,它在單線程中,允許一個執行過程A中斷,然后轉到執行過程B,在合適的時間又可以轉回來,從而在單線程中實現了類似多線程的效果。而它有以下幾點優勢:

?

    • 數量理論上可以是無限個,因為是在單線程上進行,沒有線程間的切換操作,效率比較高。
    • 不需要“鎖”的機制,所有的協程都在一個線程中。
    • 比較容易Debug,因為代碼是順序執行。

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天堂最新资源在线 | 欧美精品午夜 | 国产精品一码二码三码在线 | 男女午夜影院 | 麻豆免费永久网址入口网址 | 日韩电影免费在线观看中文字幕 | 国产浮力影院在线地址 | 天堂va在线高清一区 | 成人日韩在线观看 | 国产午夜高清 | 日本一区二区三区免费观看 | 毛片国产| 日韩黄色视屏 | 国产精品久久久久无毒 | 婷婷色国产偷v国产偷v小说 | 日韩在线电影 | 九九九九九九精品任你躁 | 国产成人免费高清激情明星 | 精品国产一区探花在线观看 | 国产综合视频在线观看 | 国产精品免费观看 | 亚洲国产精品久久久久秋霞蜜臀 | 日韩在线视频在线 | 亚洲精品国精品久久99热 | aaa在线观看 | 欧美一区久久 | 99爱在线观看| 欧美一进一出 | 精品在线视频播放 | 色男人的天堂 | 欧美一级一片 | 午夜资源网 | 亚洲国产成人九九综合 | 亚洲九九夜夜 | 四虎1515hh海外永久免费在线 | 天天色天天碰 | 久久成人18免费 | 黄色网址在线视频 | 妞干网在线免费观看 | 国产在线午夜 | 国产毛片久久精品 |