更新時間:2020-09-22 17:12:51 來源:動力節點 瀏覽1671次
無論是java程序員還是正在學習java編程的朋友,對多線程一定都不陌生,一名合格的java工程師是必須要掌握java多線程的技能。線程是在編程中一定會出現使用的,多線程也是,那么你知道3種多線程程序常見形式有哪些,會在什么樣的程序中使用,這篇文章介紹多線程程序常見形式有什么。
由1個以上的線程所構成的程序稱為多線程程序(multithreaded program)。而java程序語言當初一開始就把多線程處理列入規格了。有不止1個線程在操作時,表示若要追蹤各個線程的軌跡,就會派生出一團錯綜復雜的亂線團。
假設有人問到“請問現在正在執行程序的哪個部分?”時,都要指出“就在這里”。如果是多線程,你需要更多只手指頭才能指出所有線程;也就是說,若正在執行的有2個線程,則應指出2個位置說“第1個線程正在執行這里,第2個線程則執行那里”。有3個線程,就得指出3個位置:有100個線程,就得指出100個位置。
當應用程序的規模大到一定程度,程序里的多線程會以某種形式存在。以下是多線程程序常見形式,有三種:
1、GUI應用程序
幾乎所有GUI應用程序都一定有多線程。舉例來說,假設現在有人用Word編輯一個較大的文本文件,剛剛才做過單字“查找”的操作。當Word進行查找時,屏幕上會出現“停止查找”的按鈕,用戶隨時均可停止查找。這個功能其實就用到了多線程。
(1)執行查找。
(2)顯示按鈕,若按下按鈕時,則停止查找。
這2個操作分別交給不同的線程進行。這樣一來,執行(1)的線程可以專心查找,執行(2)的線程也可專心在 GUI 操作上,程序就會變得比較簡單。
2、比較花費時間的I/O處理
一般來說,文件和網絡的I/O處理比較花費時間。如果在這段期間中程序無法進行其他處理,程序性能便會大打折扣。遇到這種問題,有時也會使用多線程來解決。先把執行I/O處理和非I/O處理的線程分開,這樣就能利用進行 I/0 處理時的時間,同時進行其他處理了。
3、多個客戶端
基本上,網絡上的服務器必須同時處理1個以上的客戶端。不過,要是一定在服務器這邊的程序設計加入 1個以上客戶端的概念的話,程序反而會變得更復雜。此時,不妨準備一個當有客戶端連接到服務器時,會自動出來迎接這個客戶端的線程。這樣一來,服務器的程序就可以設計成好像只服務一個客戶端。
以上介紹了3種多線程程序常見形式,希望大家在對多線程有一定的了解后,可以通過java多線程視頻課程來學習更多的多線程的知識,以掌握如何使用多線程,提高自己的java水平。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習