• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Java語言深入--對JAVA 的多線程淺析

    發布: 2008-5-09 10:43 | 作者: 不詳 | 來源: 不詳 | 查看: 58次 | 進入軟件測試論壇討論

    領測軟件測試網

    Unlocking readLock:4

    Write op:3

    Unlocking writeLock:3

    從這可看到,

    2.5死鎖以及怎樣避免死鎖:

    為了防止數據項目的并發訪問,應將數據項目標為專用,只有通過類本身的實例方法的同步區訪問。為了進入關鍵區,線程必須取得對象的鎖。假設線程要獨占訪問兩個不同對象的數據,則必須從每個對象各取一個不同的鎖,F在假設另一個線程也要獨占訪問這兩個對象,則該進程必須得到這兩把鎖之后才能進入。由于需要兩把鎖,編程如果不小心就可能出現死鎖。假設第一個線程取得對象A的鎖,準備取對象B的鎖,而第二個線程取得了對象B的鎖,準備取對象A的鎖,兩個線程都不能進入,因為兩者都不能離開進入的同步塊,既兩者都不能放棄目前持有的鎖。避免死鎖要認真設計。線程因為某個先決條件而受阻時,如需要鎖標記時,不能讓線程的停止本身禁止條件的變化。如果要取得多個資源,如兩個不同對象的鎖,必須定義取得資源的順序。如果對象A和B的鎖總是按字母順序取得,則不會出現前面說道的餓死條件。

     

    三Java多線程的優缺點

     

    由于JAVA的多線程功能齊全,各種情況面面具到,它帶來的好處也是顯然易見的。多線程帶來的更大的好處是更好的交互性能和實時控制性能。當然實時控制性能還取決于系統本身(UNIX,Windows,Macintosh 等),在開發難易程度和性能上都比單線程要好。當然一個好的程序設計語言肯定也難免有不足之處。由于多線程還沒有充分利用基本OS的這一功能。這點我在前面已經提到,對于不同的系統,上面的程序可能會出現截然不同的結果,這使編程者偶會感到迷惑不解。希望在不久的將來JAVA的多線程能充分利用到操作系統,減少對編程者的困惑。我期待著JAVA會更好。 
        2008年1月14日下午兩點,由中程在線資深講師徐鋒主講的"揭開軟件估算的神秘面紗",正式在中程在線全新實訓基地開講。此次講座吸引了上百人前來聽講,現場氛圍十分濃厚。主講老師也以互動交流等多種方式深入淺出地介紹了與軟件估算有關的主要概念,并深入、全面地介紹了與軟件估算有關的多種估算方法。以及估算與計劃和項目控制,估算與目標和承諾之間的關系等等。

        本次"揭開軟件估算的神秘面紗"講座的主講徐鋒,是信息產業部電子信息中心高級咨詢顧問。并在系統需求工程、系統分析與設計、架構設計、項目管理、軟件過程改進、IT規劃、技術管理等方面均有豐富的工作經驗。已發表文章近50篇,著書6本。在業內享有有良好的聲譽。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>