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

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

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

    細(xì)心!用心!耐心!

    吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買賣,九十道人情。

    BlogJava 聯(lián)系 聚合 管理
      1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
    考慮這麼一個伺服器,它可以處理來自多個客戶端的服務(wù)請求(Request),為了不丟失客戶的請求,它要維持一個緩衝區(qū),客戶的請求會先儲存至緩衝區(qū)中,而伺服器會從緩衝區(qū)中取出請求並執(zhí)行,如果緩衝區(qū)中沒有請求,則伺服器就等待,直到被通知有新的請求存入緩衝區(qū)中,伺服器再度進(jìn)行請求的執(zhí)行。

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

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

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

    Guarded Suspension模式關(guān)注的是執(zhí)行的流程架構(gòu),以Java來實現(xiàn)這個架構(gòu)的話如下所示:
    • 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();
    }
    }

    一個例子是多人聊天伺服器,請求可能只是一個客戶端送出的聊天訊息,聊天訊息會先存至緩衝區(qū)中,伺服器會不斷的從緩衝區(qū)中取出聊天訊息並發(fā)給客戶端,如果緩衝區(qū)中沒有新訊息,則伺服器就進(jìn)入等待,直到有一個客戶端發(fā)出聊天訊息並存入緩衝區(qū)中,此時伺服器再度被通知,然後再度取出訊息並進(jìn)行發(fā)送。
    posted on 2007-04-17 10:54 張金鵬 閱讀(300) 評論(0)  編輯  收藏 所屬分類: 多執(zhí)行緒模式
    主站蜘蛛池模板: 亚洲六月丁香六月婷婷蜜芽 | 最近2019中文字幕免费直播 | 亚洲AV无一区二区三区久久| 日韩在线视频免费| 亚洲成aⅴ人片久青草影院| 久久久久久久久无码精品亚洲日韩 | 亚洲av永久无码精品漫画| 成人影片一区免费观看| 精品亚洲综合久久中文字幕| 成年免费a级毛片免费看无码| 亚洲一区二区三区无码中文字幕| aa级毛片毛片免费观看久| 国产成A人亚洲精V品无码| 免费黄网站在线观看| 亚洲黄色网址在线观看| 亚洲免费综合色在线视频| 亚洲乱码中文字幕在线| 亚洲av麻豆aⅴ无码电影| 中文字幕在线免费看线人| 久久精品九九亚洲精品| 一二三四免费观看在线视频中文版 | 免费阿v网站在线观看g| 亚洲av永久中文无码精品| 亚洲AV无码乱码在线观看| 99精品视频免费| 亚洲jjzzjjzz在线观看| 国产日产成人免费视频在线观看| 免费看一级高潮毛片| 亚洲高清国产拍精品26U| 精品女同一区二区三区免费站| 亚洲精品美女网站| 精品国产亚洲一区二区在线观看 | 久久久久免费视频| 亚洲日韩乱码中文无码蜜桃| 毛片免费vip会员在线看| eeuss在线兵区免费观看| 亚洲日本香蕉视频观看视频| 国产一区二区三区免费在线观看 | 亚洲人AV在线无码影院观看| 亚洲色图综合在线| 99在线精品免费视频九九视|