<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    keep moving!

    We must not cease from exploration. And the end of all our exploring will be to arrive where we began and to know the place for the first time.
    隨筆 - 37, 文章 - 2, 評論 - 3, 引用 - 0
    數據加載中……

    Design Pattern: Guarded Suspension 模式

    考慮這麼一個伺服器,它可以處理來自多個客戶端的服務請求(Request),為了不丟失客戶的請求,它要維持一個緩衝區,客戶的請求會先儲存至緩衝區中,而伺服器會從緩衝區中取出請求並執行,如果緩衝區中沒有請求,則伺服器就等待,直到被通知有新的請求存入緩衝區中,伺服器再度進行請求的執行。

    關於這個描述的一個簡單 UML 順序圖如下所示:
    GuardedSuspension

    首先要考慮到,緩衝區會同時被兩個以上的執行緒進行存取,即伺服器的請求處理執行緒與客戶端執行緒,所以必須對緩衝區進行防護。

    再來是當緩衝區中沒有請求時,伺服器必須等待直到被通知有新的請求。

    Guarded Suspension模式關注的是執行的流程架構,以Java來實現這個架構的話如下所示:
    • RequestQueue.java
    public class RequestQueue {
    private java.util.LinkedList queue;
    public RequestQueue() {
    queue = new java.util.LinkedList();
    }

    public synchronized Request getRequest() {
    while(queue.size() <= 0) {
    try {
    wait();
    }
    catch(InterruptedException e) {}
    }
    return (Request) queue.removeFirst();
    }

    public synchronized void putRequest(Request request) {
    queue.addLast(request);
    notifyAll();
    }
    }

    一個例子是多人聊天伺服器,請求可能只是一個客戶端送出的聊天訊息,聊天訊息會先存至緩衝區中,伺服器會不斷的從緩衝區中取出聊天訊息並發給客戶端,如果緩衝區中沒有新訊息,則伺服器就進入等待,直到有一個客戶端發出聊天訊息並存入緩衝區中,此時伺服器再度被通知,然後再度取出訊息並進行發送。


    張金鵬 2007-04-17 10:54 發表評論

    文章來源:http://www.tkk7.com/jesson2005/articles/111194.html

    posted on 2008-09-07 11:06 大石頭 閱讀(168) 評論(0)  編輯  收藏 所屬分類: 多線程

    主站蜘蛛池模板: 日本高清色本免费现在观看| 九九精品免费视频| 亚洲真人日本在线| 免费的黄色网页在线免费观看| 精品免费国产一区二区| 亚洲精品无码久久久久牙蜜区| 在线观看免费为成年视频| 亚洲国产精品无码久久98 | 亚洲日韩乱码久久久久久| 5g影院5g天天爽永久免费影院| 亚洲AV日韩AV永久无码绿巨人| 免费一级毛片在线播放视频| 久久精品国产亚洲AV无码偷窥| 97精品免费视频| 亚洲一区精彩视频| 暖暖日本免费在线视频| 特级一级毛片免费看| 亚洲爽爽一区二区三区| 七色永久性tv网站免费看| 亚洲黄色高清视频| 四虎成人免费影院网址| 羞羞的视频在线免费观看| 亚洲日韩aⅴ在线视频| 成人免费的性色视频| 亚洲国产欧洲综合997久久| 亚洲综合在线另类色区奇米| 2021精品国产品免费观看 | 一级中文字幕免费乱码专区| 亚洲午夜久久久久久久久电影网 | 久久精品中文字幕免费| www.亚洲成在线| 国产成人精品曰本亚洲79ren| 久久福利青草精品资源站免费| 亚洲剧场午夜在线观看| 免费看国产一级特黄aa大片| a毛片免费观看完整| 亚洲啪AV永久无码精品放毛片| 亚洲伊人久久综合影院| 免费看美女裸露无档网站| 在线播放国产不卡免费视频| 亚洲综合久久1区2区3区|