高並發性解決方案:
1,隊列,緩沖
假設只有壹個窗口,對於湧入食堂的人來說,排隊取菜是壹種比較好的方式。
因此,排隊是解決並發的壹種自然方式。
排隊就是把人排隊,先進先出,解決了資源利用的問題。
隊列其實就是壹個緩沖區,是壹個緩沖區。
假設女生有優先權,從這個隊伍裏先選出女生先做飯,這就是優先權隊列。
例如,隊列模塊的類queue、LifoQueue和PriorityQueue(小頂堆實現)。
2.為之奮鬥
只開壹扇窗可能會導致混亂,就是誰擠進去誰就給他做飯。
擠進窗戶的人占據著窗戶,直到食物離開。
其他人繼續競爭,有壹個人會占據窗口,可以視為鎖定窗口,窗口將無法為其他人提供服務。
這是壹個鎖定裝置。
誰搶了資源誰就被鎖,獨占鎖,其他人只能等。
爭用也是高並發的解決方案,但是不壹定好,因為可能有人很長時間都搶不到。
3.預處理
如果排很長的隊,那是因為每個人都要等很長時間才能拿到食物,因為沒有食物吃,需要現在就做。他們不會不吃飯就走,不會鎖窗戶。
食堂可以提前統計大部分人喜歡的菜,提前準備80%喜歡的熱菜保證供應,現在做20%冷門的菜。
這樣,大部分人,即使鎖了窗戶,也會很快撞上食物,很快松開窗戶。
壹種預先加載用戶所需數據的思想,壹種預處理思想,壹種公共緩存。
更多Python知識請關註:Python自學網!!