Java提供的多線程功能使得在一個程序里可同時執行多個小任務。線程有時也稱小進程是一個大進程里分出來的小的獨立的進程。因為Java實現的多線程技術,所以比C和C++更鍵壯。多線程帶來的更大的好處是更好的交互性能和實時控制性能。當然實時控制性能還取決于系統本身(UNIX,Windows,Macintosh等),在開發難易程度和性能上都比單線程要好。傳統編程環境通常是單線程的,由于JAVA是多線程的。盡管多線程是強大而靈巧的編程工具,但要用好卻不容易,且有許多陷阱,即使編程老手也難免誤用。為了更好的了解線程,用辦公室工作人員作比喻。辦公室工作人員就象CPU,根據上級指示做工作,就象執行一個線程。在單線程環境中,每個程序編寫和執行的方式是任何時候程序只考慮一個處理順序。用我們的比喻,就象辦公室工作人員從頭到尾不受打擾和分心,只安排做一個工作。當然,實際生活中工作人員很難一次只有一個任務,更常見的是工作人員要同時做幾件事。老板將工作交給工作人員,希望工作人員做一這個工作,再做點那個工作,等等。如果一個任務無法做下去了,比如工作人員等待另一部門的信息,則工作人員將這個工作放在一邊,轉入另一個工作。一般來說,老板希望工作人員手頭的各個任務每一天都有一些進展。這樣就引入了多線程的概念。多線程編程環境與這個典型的辦公室非常相似,同時給CPU分配了幾個任務或線程。和辦公室人員一樣,計算機CPU實際上不可能同一時間做幾件事,而是把時間分配到不同的線程,使每個線程都有點進展。如果一個線程無法進行,比如線程要求的鍵盤輸入尚未取得,則轉入另一線程的工作。通常,CPU在線程間的切換非常迅速,使人們感覺到好象所有線程是同時進行的。
任何處理環境,無論是單線程還是多線程,都有三個關鍵方面。第一個是CPU,它實際上進行計算機活動;第二個是執行的程序的代碼;第三個是程序操作的數據。
在多線程編程中,每個線程都用編碼提供線程的行為,用數據供給編碼操作。多個線程可以同時處理同一編碼和數據,不同的線程也可能各有不同的編碼和數據。事實上編碼和數據部分是相當獨立的,需要時即可向線程提供。因此經常是幾個線程使用同一編碼和不同的數據。這個思想也可以用辦公室工作人員來比喻。會計可能要做一個部門的帳或幾個或幾個部門的帳。任何情況的做帳的任務是相同的程序代碼,但每個部門的數據是不同的。會計可能要做整個公司的帳,這時有幾個任務,但有些數據是共享的,因為公司帳需要來自各個部門的數據。
多線程編程環境用方便的模型隱藏CPU在任務切換間的事實。模型允許假裝成有多個可用的CPU。為了建立另一個任務,編程人員要求另一個虛擬CPU,指示它開始用某個數據組執行某個程序段。下面我們來建立線程。
建立線程
文章來源于領測軟件測試網 http://www.kjueaiud.com/