<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 講個故事 軟件、服務器工作模式的很多靈感都是從餐廳來的,都是為了解決實際問題的。 生產者,消費者; 我們來看去餐廳吃飯的場景: 某日我們肚子餓了,去餐館吃飯,我們需要吃飯,餐館是做飯的。 那么我是消費者,餐廳是生產者。我消費飯菜,餐廳生成飯菜。 此時剛好正中午吃飯的時候,人很多,而這個餐廳只有一個廚師在炒菜,所以需要排隊等。 餐廳吃飯的流程:吧臺點菜付錢,付款后領號找個位置等,廚房炒菜,飯好了會有人叫號,拿到飯就吃飯。 我點菜一分鐘就好了,但是廚師炒出來需要5~10分鐘,所以我在吧臺點好后,服務員會給我一個號(32號),讓我找個位置坐下先喝杯茶。 然后我就找個位置一邊喝茶,一邊看會手機。 8分鐘很快就過了,服務員拿著牌子,喊“32號好了”,誰是32號,我一看我的牌子,“我是32號,我在這兒”,服務員“哦,好的”,然后給我端過來了我剛點的千張肉絲,還有個小細節,她把菜放到我的桌子上的時候收走了我的牌子。當然我的菜已經上了,要這個牌子也沒用了,于是我就開始吃飯了。 其它的人來的晚的還在排隊,還有很多人像我剛才一樣的正在等著“叫號”,有幾個人好像等得有點不耐煩了,頻繁的去催服務員。 但是只有一個廚師啊,**我看到服務員把菜單送到廚房,貼在板子上,廚師照著菜單炒菜,有時候按照順序,有時候估計是什么好炒,方便炒,什么菜有幾份的可以一起炒,總之廚師會想辦法盡量提高效率(關于怎么提高廚師出餐的效率真的需要到廚房去考察一下廚師的工作情況才能知道的)**,但中午吃飯人太多了,高峰期,板子上的菜單都貼滿了,炒不過來啊。 有的沒耐心的甚至要去前臺退款不吃了。 有的人排隊排到一半沒有耐心要走了。 有的人看到門口排那么長的隊,干脆就沒進來,換別家了。 看著有人走了,老板就不高興了,怎么能這樣呢,到手的錢飛了,這不行,趕快打電話叫另外一個廚師來,叫另外一個休假的收銀員也來上班,過了一會,**廚房第二個灶臺開了,第二個廚師將第一個廚師的板子上的菜單拿走一部分,貼到自己的板子上(注意這里,很重要,這里面涉及到的細節很重要,下面會說到)開始炒菜**,收銀員增加了一個,點菜就可以在兩個吧臺點,之前第一個吧臺排隊的人看到第二個吧臺開了,排在后面的人都一窩蜂的跑去第二個吧臺排隊。很快第二個吧臺也排滿了人,兩個吧臺勢均力敵,人數差不多。(這里有一個細節,吧臺2開的時候,正在吧臺1點菜人是不會去吧臺2的,因為他此時正在吧臺1點呢,注意這個細節,也很重要,下面會說到這有什么意義) 點菜,上菜的速度提升了之后,店里的秩序好了很多,吃飯的人也多了,店里的桌子差不多都坐滿了人,生意好的令人旁邊的店羨慕不已。 老板可高興了,看著前臺不停的收錢,廚房不斷的出餐,心里美滋滋的。 時間過的很快,飯點的時候很快就過了,吃飯的人漸漸沒有了,此時忙碌的餐廳變得閑起來了,前臺兩個妹子沒事了開始相互的聊天,廚房里有一個廚師也很閑。 老板又開始皺眉頭了,你們這么閑可不行,可是要工資的,精明的老板對來幫忙的前臺和廚師說你們現在可以下班了,今天的給你們加半天的工資。 哈哈,聰明的老板,錢也賺了,人力成本也講到最低化。 我目睹了一切,回到家里來了靈感,原來服務器,軟件的工作的方式,靈感就是來自于餐廳啊。于是我趕緊寫下了這些文字,生怕沒能記下這個“偉大”的發現。 以上,純屬瞎編。 再說上面那兩個重要的問題: 其實是資源分配,并發的問題。 另外一個廚師來了,將第一個廚師的板子上的菜單拿下一部分貼到自己的板子上。 你覺得實際生活中是怎樣的情景呢? 此時廚師1正在炒菜,廚師2來了,要拿掉一下廚師1板子上的菜單,也就是原本廚師1要炒的菜。 注意這段話有三個重要的信息: 1. 廚師1當前正在炒著菜呢 2. 當前板子上的所有菜單是廚師1原本準備要炒的菜 3. 現在廚師2想要分配一點過去 那么這里就會有一些問題,廚師2拿走一些的時候肯定要問一下廚師1: 廚師2:“喂,你現在在炒什么菜,沒有炒的我拿去炒了啊”(肯定要問一下,不然廚師1當前再炒青椒肉絲,廚師2沒問,看到板子上的青椒肉絲也炒了,那這樣就炒了兩個青椒肉絲,重復炒了。) 廚師1:“什么,別叫,炒菜在呢,把我頭都弄暈了,你等我把這個菜炒完了再說” 他們要重新分配資源,因為廚師2是中途進來的,所以要重新分配,要保證正確的話,那么廚師1必須要停下來,然后再一起重新分配資源,但是廚師1鍋里面還炒著菜啊,肯定不能停啊,停下來不就炒糊了,所以廚師1要先把此時鍋里面正在炒著的菜先炒完,再停下來,也就是說哪怕廚師1接收到了停止工作的命令,也要先把手頭上的正在炒的菜炒完,炒完了再停止工作。 其實這和我們經常說的:熱插拔,平滑停止工作,平滑重啟等是同樣的意義。 廚師2就乖乖的等廚師1把手頭上的菜炒完,然后他們在開始重新分配菜單。 然后開始同時工作,各自炒各自的菜沒有沖突。 其實這里面涉及到的問題就是: 重復執行問題 worker變化導致**重排問題**,資源重新分配問題(平滑停止,重新分配資源) 同理,前臺也是同樣的問題。 * * * * * ### 擴展 [高并發得時候,服務器壓力大,是內存的問題,還是cpu的問題?-那份心情61650940的回答-悟空問答](https://www.wukong.com/answer/6463195446322921741/?iid=12619555732&app=news_article&wxshare_count=1&tt_from=weixin&utm_source=weixin&utm_medium=toutiao_android&utm_campaign=client_share) last update:2017-9-8 13:36:39
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看