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

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

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

    沙漠中的魚

    欲上天堂,先下地獄
    posts - 0, comments - 56, trackbacks - 0, articles - 119
      BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理
    事件監(jiān)聽的安全性
    如下代碼,在用Vector進(jìn)行不安全的迭代時(shí),另外一個(gè)線程對(duì)Vector的對(duì)象進(jìn)行添加或刪除時(shí),會(huì)拋出會(huì)拋出 ConcurrentModificationException異常。
    Vector<Listener> v;
    for (int i=0; i<v.size(); i++)
      v.get(i).eventHappened(event);
    java.util.concurrent 中的 CopyOnWriteArrayList 類,能夠幫助防止這個(gè)問題。它實(shí)現(xiàn)了 List,而且是線程安全的,但是它的迭代器不會(huì)拋出 ConcurrentModificationException,遍歷期間也不要求額外的鎖定。這種特性組合是通過在每次列表修改時(shí),在內(nèi)部重新分配并拷貝列表內(nèi)容而實(shí)現(xiàn)的,這樣,遍歷內(nèi)容的線程不需要處理變化 —— 從它們的角度來說,列表的內(nèi)容在遍歷期間保持不變。雖然這聽起來可能沒效率,但是請(qǐng)記住,在多數(shù)觀察者情況下,每個(gè)組件只有少量偵聽器,遍歷的數(shù)量遠(yuǎn)遠(yuǎn)超過插入和刪除的數(shù)量。所以更快的迭代可以補(bǔ)償較慢的變化過程,并提供更好的并發(fā)性,因?yàn)槎鄠€(gè)線程可以同時(shí)迭代列表。
    事件監(jiān)聽初使化風(fēng)險(xiǎn)
    事件監(jiān)聽器允許"this"轉(zhuǎn)義
    失效的監(jiān)聽
      public void processFile(String filename) throws IOException {
        cancelButton.registerListener(this);
        // open file, read it, process it
        // might throw IOException
        cancelButton.unregisterListener(this);
      }
    當(dāng)讀入文件時(shí),產(chǎn)生異常,會(huì)造成取消注冊(cè)事件不能被執(zhí)行,取消登記的操作應(yīng)當(dāng)在 finally 塊中進(jìn)行,這樣,processFile() 方法的所有出口都會(huì)執(zhí)行它。
    主站蜘蛛池模板: 亚洲国产精品一区二区第一页| 亚洲乱码精品久久久久..| 99久久免费国产精品特黄| 四虎免费大片aⅴ入口| 国产亚洲精品成人a v小说| 亚洲人成电影网站| xxxxx做受大片视频免费| www视频免费看| 亚洲色一色噜一噜噜噜| 亚洲一区二区三区亚瑟| 一级毛片高清免费播放| 天天看免费高清影视| 婷婷亚洲久悠悠色悠在线播放| 亚洲国产日韩精品| 在线观看AV片永久免费| 成人无遮挡裸免费视频在线观看| 中文字幕亚洲一区| 猫咪免费人成网站在线观看| 免费人成网上在线观看| 亚洲午夜久久久精品电影院| 久久久久亚洲AV成人网| 国产成人免费爽爽爽视频| 拍拍拍无挡视频免费观看1000| 亚洲精品久久久久无码AV片软件| 亚洲AV乱码一区二区三区林ゆな| 国产美女被遭强高潮免费网站| 亚洲视频免费在线观看| h视频在线免费观看| 亚洲精品国产高清在线观看| 亚洲视屏在线观看| 亚洲国产一二三精品无码| 国产一级高清免费观看| 国产91免费在线观看| 一个人免费视频在线观看www| 亚洲av色香蕉一区二区三区蜜桃| 久久亚洲AV成人出白浆无码国产 | 黄床大片30分钟免费看| 亚洲日本久久一区二区va| 亚洲美女大bbbbbbbbb| 亚洲精品无码成人AAA片| 亚洲一区二区高清|