python-並行&併發|同步&異步|異步阻塞&異步非阻塞&同步阻塞&同步非阻塞

申明:本文涉及的概念不是官方解釋,是我的的語言總結,噴者勿進python

並行&併發概念web

(並行&併發)學習這兩個概念首先明確這兩個概念的區別,這兩個概念的區別貫穿本文,兩個是不一樣的概念算法

並行:並行是解決了什麼事(ing),一段時間或則同一時刻作了幾件事編程

併發:併發是有多少事要解決(will be doing),一段時間或則同時時刻有多少事要作 緩存

註釋:並行是解決併發的一種手段服務器

demo:網絡

  並行:高速雙向4車道,能夠肩並肩同時行駛8輛車(解決了8輛車同時運行這件事),他們在本身的車道上互不影響  數據結構

  併發:火車站春運與平時對比,平時人少(併發量就比較小),春運人不少(併發量就很大),乘客要乘車,客運站要解決乘車的問題(有多少乘客乘車要解決,就是有多少問題須要解決)多線程

並行的實現方法:併發

  1:python 提供的標準庫threading, multiprosessing

  2:第三方celery的異步任務

併發的解決方案:

  註釋:解決高併發沒有一種模板化套路就能解決的,全部的高併發解決都是結合實際業務多種方法的綜合版

  1:隊列(緩衝區) Queue:隊列、LifoQueue:先進先出隊列、PriorityQueue:優先級隊列

    註釋:隊列自然的就造成了一個緩衝地帶,就是緩衝區.隊列也是程序中的生產者消費者模型

  2:爭搶 誰先佔用cpu誰先執行,其餘的等待,多核CPU須要解決資源競爭的問題

    註釋:解決資源競爭要使用鎖機制

  3:預處理  將代碼片的處理結果預先處理好,存放於某個位置,當併發的時候不用執行代碼片而直接獲取結果

    註釋: 預處理也是程序中經常使用的緩存,web項目中動態頁面靜態化

  4: 並行編程(水平擴展) 程序的最終執行是由進程中的線程去執行的,每一個進程在沒有受到計算機任務調度的狀況下是獨佔一個cpu核的,從這個理解出發,並行解決高併發可使用多服務器,多進程,多線程來處理

    註釋:這個概念也就涉及到部署中多機的、分佈式的部署方法

  5: 提速(垂直擴展) 提高單個cpu性能,單臺服務器替換成更多的cpu核數,更換固態硬盤,雲服務就增長帶寬

  6:消息中間件 究竟什麼是程序,程序等於數據結構+算法,算法包括1:可接收的參數 2:可接受的時間範圍內返回的接收到參數的處理結果,最終明白,程序就是處理請求和返回結果的,消息中間件中的消息指的就是請求,他幹了什麼是呢,就是在這個請求尚未到達程序入口(API)以前,先將消息進行一個緩衝.

    註釋:python常見的消息中間件 RabbitMQ、ActiveMQ、RocketMQ、kafka

  7:就近原則 像BAT這樣的大公司,服務器分佈不少地區。像你在深圳打遊戲你選擇華北的服務器,確定比當地服務器丟包率高一個道理,就近原則能夠縮短網絡IO的時間

同步&異步概念

註釋:同步&異步,強調的是結果,是否直接拿到結果沒有繞彎

同步:調用一個接口,程序直接響應並返回結果(請求->響應的結果)

    註釋:好比去商店購買菸,老闆直接把你要的煙給了你,稱爲同步(買菸->拿到煙)

異步:調用一個接口,程序響應,可是沒有直接給結果,而是給了你一箇中間物(信號),而後你監聽這個信號,或者叫你才能拿到最終的結果(請求->中間物->響應的結果)

    註釋:好比去購買一杯一點點奶茶,商店並無直接將奶茶交付於你,而是給了你一個排隊的單號,等作好後按照單號取奶茶(點一杯奶茶->小票單號->叫號/拿號取物->拿到奶茶)

異步阻塞&異步非阻塞&同步阻塞&同步非阻塞

註釋:異步阻塞&異步非阻塞&同步阻塞&同步非阻塞,強調的仍是獲取結果,及獲取到結果有沒有等待

結合同步異步的概念,這裏只介紹阻塞

異步阻塞:表示你在拿到這個中間物後你就一直在這裏等着,沒有作其餘的事表示阻塞

    註釋:你去購買奶茶,奶茶店給了你一張小票(你經過這個小票能夠取到奶茶),你什麼事都不作了,就在這裏等着直到拿到奶茶,就是異步阻塞

異步非阻塞:表示你在拿到這個中間物後,沒有一直等着,而是繼續作了其餘事

    註釋:你去購買奶茶,奶茶店給了你一張小票(你經過這個小票能夠取到奶茶),你就去作了其餘事(反正小票能夠取到奶茶,奶茶店把奶茶給你作好後給你放在冰箱存着,等你來取),你去了一趟超市買了一盒煙後回來取的奶茶

 

同步阻塞:你去買一個煙,老闆說煙在倉庫他去給你拿了,你就一直在這裏等着稱爲同步阻塞。

同步非阻塞:你取買一盒煙,老闆說煙在倉庫他去給你拿了,你沒有在這裏一直等着,而是去旁邊水果店買了一些水果,買完水果回來老闆已經給你準備好了煙 ,這是同步非阻塞

相關文章
相關標籤/搜索