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