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