更新時(shí)間:2020-11-04 17:37:15 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1295次
多線程是Java SE中非常重要的內(nèi)容,無論是在我們的學(xué)習(xí)和求職中都有著大量的比重,那么我們真的都弄懂了什么是多線程嗎?還是說只是停留在僅僅知道的層面,具體卻又說不出來到底什么是多線程。本文我們就和大家一起來解析多線程。
多線程(英語:multithreading),是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù)。具有多線程能力的計(jì)算機(jī)因有硬件支持而能夠在同一時(shí)間執(zhí)行多于一個(gè)線程,進(jìn)而提升整體處理性能。具有這種能力的系統(tǒng)包括對(duì)稱多處理機(jī)、多核心處理器以及芯片級(jí)多處理(Chip-levelmultithreading)或同時(shí)多線程(Simultaneousmultithreading)處理器。 在一個(gè)程序中,這些獨(dú)立運(yùn)行的程序片段叫作“線程”(Thread),利用它編程的概念就叫作“多線程處理(Multithreading)”。具有多線程能力的計(jì)算機(jī)因有硬件支持而能夠在同一時(shí)間執(zhí)行多于一個(gè)線程(臺(tái)灣譯作“執(zhí)行緒”),進(jìn)而提升整體處理性能。
在計(jì)算機(jī)編程中,一個(gè)基本的概念就是同時(shí)對(duì)多個(gè)任務(wù)加以控制。許多程序設(shè)計(jì)問題都要求程序能夠停下手頭的工作,改為處理其他一些問題,再返回主進(jìn)程。可以通過多種途徑達(dá)到這個(gè)目的。最開始的時(shí)候,那些掌握機(jī)器低級(jí)語言的程序員編寫一些“中斷服務(wù)例程”,主進(jìn)程的暫停是通過硬件級(jí)的中斷實(shí)現(xiàn)的。盡管這是一種有用的方法,但編出的程序很難移植,由此造成了另一類的代價(jià)高昂?jiǎn)栴}。中斷對(duì)那些實(shí)時(shí)性很強(qiáng)的任務(wù)來說是很有必要的。但對(duì)于其他許多問題,只要求將問題劃分進(jìn)入獨(dú)立運(yùn)行的程序片斷中,使整個(gè)程序能更迅速地響應(yīng)用戶的請(qǐng)求 。
最開始,線程只是用于分配單個(gè)處理器的處理時(shí)間的一種工具。但假如操作系統(tǒng)本身支持多個(gè)處理器,那么每個(gè)線程都可分配給一個(gè)不同的處理器,真正進(jìn)入“并行運(yùn)算”狀態(tài)。從程序設(shè)計(jì)語言的角度看,多線程操作最有價(jià)值的特性之一就是程序員不必關(guān)心到底使用了多少個(gè)處理器。程序在邏輯意義上被分割為數(shù)個(gè)線程;假如機(jī)器本身安裝了多個(gè)處理器,那么程序會(huì)運(yùn)行得更快,毋需作出任何特殊的調(diào)校。根據(jù)前面的論述,大家可能感覺線程處理非常簡(jiǎn)單。但必須注意一個(gè)問題:共享資源!如果有多個(gè)線程同時(shí)運(yùn)行,而且它們?cè)噲D訪問相同的資源,就會(huì)遇到一個(gè)問題。舉個(gè)例子來說,兩個(gè)線程不能將信息同時(shí)發(fā)送給一臺(tái)打印機(jī)。為解決這個(gè)問題,對(duì)那些可共享的資源來說(比如打印機(jī)),它們?cè)谑褂闷陂g必須進(jìn)入鎖定狀態(tài)。所以一個(gè)線程可將資源鎖定,在完成了它的任務(wù)后,再解開(釋放)這個(gè)鎖,使其他線程可以接著使用同樣的資源。
多線程是為了同步完成多項(xiàng)任務(wù),不是為了提高運(yùn)行效率,而是為了提高資源使用效率來提高系統(tǒng)的效率。線程是在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候?qū)崿F(xiàn)的一種任務(wù)模式,而實(shí)現(xiàn)多線程可以理解為在這一模式下的并發(fā)執(zhí)行機(jī)制。
怎么樣,看到這里大家應(yīng)該徹底弄懂了什么是多線程了吧,然則我們不僅要知其然還要知其所以然,后續(xù)我們?cè)诙嗑€程的定義的基礎(chǔ)之上繼續(xù)學(xué)習(xí)多線程的相關(guān)知識(shí),本站的多線程教程中有相當(dāng)全面的多線程知識(shí)體系供大家參考學(xué)習(xí)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743