javascript隊列的應用

來源:互聯網
上載者:User

標籤:javascript   結構   

隊列的應用有哪些呢?

         我們先看看電腦群組成層面的吧,首先就是CPU資源的競爭問題。在具有多個終端的電腦系統中,有多個使用者需要使用CPU來各自運行程式,作業系統會按照每個請求在時間上的順序,加請求排成一個隊列。每次把CPU分配給隊頭的任務,完成後使其出隊,然後依次。

         第二個例子就是主機與外部裝置之間速度不匹配的問題。我們以印表機和主機為例。主機輸出資料給印表機列印,主機輸出資料的速度遠大於印表機列印速度,所以有一個列印資料緩衝區,主要把資料依次寫入緩衝區,寫滿後主機就暫停輸出,繼而去做其他時間,只到印表機完成列印,再次請求主機發送資料,主機才繼續輸出資料。這樣利用隊列可以提高主機的效率。

         我在這裡挑一個常見的軟體層面的例子,也就是銀行排隊問題。先說說實現思路,第一個客戶到達的時刻為0,之後每個客戶到達的時刻在前一個客戶到達時設定隨機值,因此在客戶到達時需要產生兩個隨機數,一個是客戶辦理業務耗時durtime,一個是下一客戶到達時間間隔intertime,假設目前時間為occurtime,則下一客戶到達時為occurtime+intertime。

剛到達的客戶應該插入到當前含元素最少的隊列中。

         在javascript的運用中,通常使用隊列來進行任務的排序。而任務隊列的任務是按進入隊列的順序順延強制(解決狀態一致性)的,即當前一個任務完成後,後面的任務才被執行,如果當前沒有任務,則入隊列的任務立即執行。代碼如下:


javascript隊列的應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.