amp@java

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            99 隨筆 :: 0 文章 :: 228 評(píng)論 :: 0 Trackbacks
          改了一下實(shí)現(xiàn),采用“生產(chǎn)者-消費(fèi)者”模式。每個(gè)串口一個(gè)線程,讀取BlockingQueue里的待發(fā)信息,作為消費(fèi)者,發(fā)送完畢后把發(fā)送結(jié)果寫到另外一個(gè)BlockingQueue里;查詢線程定時(shí)查詢數(shù)據(jù)庫(kù),獲得待發(fā)信息并加入到BlockingQueue里;結(jié)果更新線程讀取BlockingQueue里的短信發(fā)送結(jié)果,更新到數(shù)據(jù)庫(kù)里,并把結(jié)果發(fā)送到客戶端。
          這樣會(huì)帶來(lái)一個(gè)問(wèn)題,發(fā)送線程發(fā)送短信需要一定的時(shí)間,可能某條待發(fā)信息已經(jīng)在隊(duì)列里了,但查詢線程并不知道,繼續(xù)把該信息入列,所以發(fā)送線程在發(fā)送某條短信前要檢查數(shù)據(jù)庫(kù),看是否已經(jīng)發(fā)送過(guò),如果發(fā)送過(guò),則不再發(fā)送。
          posted on 2006-10-25 17:34 amp@java 閱讀(789) 評(píng)論(0)  編輯  收藏 所屬分類: Java common
          主站蜘蛛池模板: 泸定县| 德保县| 长阳| 高陵县| 定兴县| 永顺县| 山东| 巴林右旗| 新田县| 彭阳县| 白山市| 荆州市| 从化市| 江达县| 昭平县| 博兴县| 吉水县| 葫芦岛市| 根河市| 于田县| 桑日县| 汉川市| 阳原县| 拜城县| 封开县| 邵阳市| 黎城县| 会泽县| 金山区| 镇江市| 赣州市| 余庆县| 台安县| 原阳县| 张家港市| 白山市| 望奎县| 长乐市| 甘洛县| 云阳县| 吴桥县|