• <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 | 作者: 不詳 | 來源: 不詳 | 查看: 54次 | 進入軟件測試論壇討論

    領測軟件測試網

    Java提供的多線程功能使得在一個程序里可同時執行多個小任務。線程有時也稱小進程是一個大進程里分出來的小的獨立的進程。因為Java實現的多線程技術,所以比C和C++更鍵壯。多線程帶來的更大的好處是更好的交互性能和實時控制性能。當然實時控制性能還取決于系統本身(UNIX,Windows,Macintosh等),在開發難易程度和性能上都比單線程要好。傳統編程環境通常是單線程的,由于JAVA是多線程的。盡管多線程是強大而靈巧的編程工具,但要用好卻不容易,且有許多陷阱,即使編程老手也難免誤用。為了更好的了解線程,用辦公室工作人員作比喻。辦公室工作人員就象CPU,根據上級指示做工作,就象執行一個線程。在單線程環境中,每個程序編寫和執行的方式是任何時候程序只考慮一個處理順序。用我們的比喻,就象辦公室工作人員從頭到尾不受打擾和分心,只安排做一個工作。當然,實際生活中工作人員很難一次只有一個任務,更常見的是工作人員要同時做幾件事。老板將工作交給工作人員,希望工作人員做一這個工作,再做點那個工作,等等。如果一個任務無法做下去了,比如工作人員等待另一部門的信息,則工作人員將這個工作放在一邊,轉入另一個工作。一般來說,老板希望工作人員手頭的各個任務每一天都有一些進展。這樣就引入了多線程的概念。多線程編程環境與這個典型的辦公室非常相似,同時給CPU分配了幾個任務或線程。和辦公室人員一樣,計算機CPU實際上不可能同一時間做幾件事,而是把時間分配到不同的線程,使每個線程都有點進展。如果一個線程無法進行,比如線程要求的鍵盤輸入尚未取得,則轉入另一線程的工作。通常,CPU在線程間的切換非常迅速,使人們感覺到好象所有線程是同時進行的。

    任何處理環境,無論是單線程還是多線程,都有三個關鍵方面。第一個是CPU,它實際上進行計算機活動;第二個是執行的程序的代碼;第三個是程序操作的數據。

    在多線程編程中,每個線程都用編碼提供線程的行為,用數據供給編碼操作。多個線程可以同時處理同一編碼和數據,不同的線程也可能各有不同的編碼和數據。事實上編碼和數據部分是相當獨立的,需要時即可向線程提供。因此經常是幾個線程使用同一編碼和不同的數據。這個思想也可以用辦公室工作人員來比喻。會計可能要做一個部門的帳或幾個或幾個部門的帳。任何情況的做帳的任務是相同的程序代碼,但每個部門的數據是不同的。會計可能要做整個公司的帳,這時有幾個任務,但有些數據是共享的,因為公司帳需要來自各個部門的數據。

    多線程編程環境用方便的模型隱藏CPU在任務切換間的事實。模型允許假裝成有多個可用的CPU。為了建立另一個任務,編程人員要求另一個虛擬CPU,指示它開始用某個數據組執行某個程序段。下面我們來建立線程。

    建立線程

    文章來源于領測軟件測試網 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>