伸进女同桌乳沟里摸爽了,小雪解开乳罩给老杨摸,少妇被按摩师摸高潮了,亲嘴扒胸摸屁股激烈视频,强摸秘书人妻大乳BD,摸BBB揉BBB揉BBB视频

新疆軟件開(kāi)發(fā)

本站首頁(yè) 軟件開(kāi)發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開(kāi)發(fā)公司 >> Java技術(shù) >> 文章正文

java多線程SOCKET程序的問(wèn)題

      去年的一個(gè)項(xiàng)目中,我設(shè)計(jì)了一個(gè)多線程的UDP通訊程式,由我方一臺(tái)主機(jī),分別對(duì)應(yīng)四地發(fā)送接收數(shù)據(jù)包。
在生產(chǎn)環(huán)境已經(jīng)非常穩(wěn)健的運(yùn)行了1年。
最近,隨著業(yè)務(wù)的增加,連接的遠(yuǎn)端增加到了12個(gè),也就是一個(gè)IP向12個(gè)IP發(fā)送接收數(shù)據(jù)包。
我在主線程中,管理這12個(gè)獨(dú)立的通訊線程,互不干擾,由于服務(wù)器是2U4核,所以該程式的設(shè)計(jì)具有一定可伸縮性。
但是,最近維護(hù)人員告訴,發(fā)現(xiàn)會(huì)發(fā)生某地業(yè)務(wù)停頓。一檢查,線程exception terminate。居然報(bào)的是:port already bind這個(gè)最常見(jiàn)的exception。但是在console里面,重啟這個(gè)線程,它又可以正常啟動(dòng),并穩(wěn)定的運(yùn)行。而且它每次發(fā)生的幾率很隨機(jī),有時(shí)候死掉1個(gè),有時(shí)死掉3個(gè),或者全部正常。
去年,該程式做過(guò)多次壓力測(cè)試,并沒(méi)發(fā)現(xiàn)這個(gè)問(wèn)題,現(xiàn)在唯一導(dǎo)致它發(fā)生的原因就是線程增加了3倍。
  仔細(xì)分析,發(fā)現(xiàn)多線程的啟動(dòng)方式,是在spring里面進(jìn)行管理和注冊(cè)jmx,每個(gè)線程都事先配置成mbean。啟動(dòng)的時(shí)候,注入一個(gè)map里,再循環(huán)啟動(dòng)。而udp通訊的方式是,隨機(jī)的由OS分配端口,會(huì)不會(huì)是線程的request太快,而OS沒(méi)有l(wèi)ock port cache的strategy,我想到這里于是在循環(huán)啟動(dòng)bean的方法里面,加了一個(gè)Thread.sleep(100)。再次測(cè)試,解決。
最后,我認(rèn)為os在分配隨機(jī)端口的時(shí)候,可能沒(méi)有鎖定機(jī)制,如果線程的request是高conconrent,就有可能出現(xiàn)重疊,而引發(fā)port lready bind 這個(gè)最簡(jiǎn)單的錯(cuò)誤。要解決這個(gè)問(wèn)題,第一就是盡量延長(zhǎng)啟動(dòng)間隔,尤其是多路并發(fā)的server上,第二,人為的控制port的分配。
作者:未知 | 文章來(lái)源:未知 | 更新時(shí)間:2008-1-15 16:39:39

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    JAVA開(kāi)發(fā)的6個(gè)實(shí)踐的例子
    JAVA中的抽象類型的一些概念
    java語(yǔ)言開(kāi)發(fā)程序中的幾個(gè)例子大家看看
    了解java開(kāi)發(fā)語(yǔ)言在軟件開(kāi)發(fā)中的幾個(gè)誤區(qū)
    如何才能使用Java實(shí)現(xiàn)內(nèi)部領(lǐng)域的特定語(yǔ)言
    Java開(kāi)發(fā)學(xué)習(xí)小心使用Date以及Time類
    sun最近修補(bǔ)了一部分java的安全補(bǔ)丁
    Java程序員應(yīng)該了解那些開(kāi)源協(xié)議
    java性能優(yōu)化的一些見(jiàn)解
    解析c#語(yǔ)言和java語(yǔ)言最相似的地方
    軟件技術(shù)
    · 開(kāi)發(fā)語(yǔ)言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫(kù)開(kāi)發(fā)
    最新文章  
    ·j2se 嵌入式腳本抓取引擎
    ·JAVA開(kāi)發(fā)的6個(gè)實(shí)踐的例子
    ·JBuilder7 / Weblogic7開(kāi)發(fā)
    ·JAVA中的抽象類型的一些概
    ·java語(yǔ)言開(kāi)發(fā)程序中的幾個(gè)
    ·了解java開(kāi)發(fā)語(yǔ)言在軟件開(kāi)
    ·如何才能使用Java實(shí)現(xiàn)內(nèi)部
    ·Java開(kāi)發(fā)學(xué)習(xí)小心使用Date
    ·Java程序員應(yīng)該了解那些開(kāi)
    ·java性能優(yōu)化的一些見(jiàn)解
    ·介紹JDK5.0一些collection
    ·基礎(chǔ)學(xué)習(xí):java中使用存儲(chǔ)
    ·解析c#語(yǔ)言和java語(yǔ)言最相
    ·Java語(yǔ)言學(xué)習(xí):jAVA中 的多
    ·Java是不是應(yīng)該增加新特性
    關(guān)于我們 | 軟件開(kāi)發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開(kāi)發(fā)網(wǎng) m.zgna.net All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開(kāi)發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    额尔古纳市| 五寨县| 周至县| 通河县| 贺兰县| 凭祥市| 容城县| 上蔡县| 泽普县| 中西区| 鲜城| 彭泽县| 独山县| 泽库县| 民乐县| 周口市| 九龙城区| 北宁市| 启东市| 三都| 陆川县| 青神县| 贺兰县| 延吉市| 邳州市| 高阳县| 德保县| 东丽区| 合阳县| 绥芬河市| 金平| 全南县| 琼结县| 广水市| 义马市| 会理县| 从江县| 昭平县| 吴江市| 堆龙德庆县| 民乐县|