1.什么是線(xiàn)程
線(xiàn)程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。線(xiàn)程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線(xiàn)程共享進(jìn)程所擁有的全部資源。
2.線(xiàn)程和進(jìn)程有什么區(qū)別?
簡(jiǎn)而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線(xiàn)程.線(xiàn)程的劃分尺度小于進(jìn)程,使得多線(xiàn)程程序的并發(fā)性高。另外,進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線(xiàn)程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。線(xiàn)程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線(xiàn)程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。但是線(xiàn)程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線(xiàn)程執(zhí)行控制。從邏輯角度來(lái)看,多線(xiàn)程的意義在于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。但操作系統(tǒng)并沒(méi)有將多個(gè)線(xiàn)程看做多個(gè)獨(dú)立的應(yīng)用,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線(xiàn)程的重要區(qū)別。
3.如何在Java中實(shí)現(xiàn)線(xiàn)程?
在語(yǔ)言層面有兩種方式。java.lang.Thread類(lèi)的實(shí)例就是一個(gè)線(xiàn)程但是它需要調(diào)用java.lang.Runnable接口來(lái)執(zhí)行,由于線(xiàn)程類(lèi)本身就是調(diào)用的Runnable接口所以你可以繼承java.lang.Thread類(lèi)或者直接調(diào)用Runnable接口來(lái)重寫(xiě)run()方法實(shí)現(xiàn)線(xiàn)程。
4.Java內(nèi)存模型是什么?
Java內(nèi)存模型規(guī)定和指引Java程序在不同的內(nèi)存架構(gòu)、CPU和操作系統(tǒng)間有確定性地行為。它在多線(xiàn)程的情況下尤其重要。Java內(nèi)存模型對(duì)一個(gè)線(xiàn)程所做的變動(dòng)能被其它線(xiàn)程可見(jiàn)提供了保護(hù),它們之間是先行發(fā)生關(guān)系。這個(gè)關(guān)系定義了一些規(guī)則讓程序員在并發(fā)編程時(shí)思路更清晰。
5.Java中如何停止一個(gè)線(xiàn)程?
Java提供了很豐富的API但沒(méi)有為停止線(xiàn)程提供API。JDK1.0本來(lái)有一些像stop(),suspend()和resume()的控制方法但是由于潛在的死鎖威脅因此在后續(xù)的JDK版本中他們被棄用了,之后JavaAPI的設(shè)計(jì)者就沒(méi)有提供一個(gè)兼容且線(xiàn)程安全的方法來(lái)停止一個(gè)線(xiàn)程。當(dāng)run()或者call()方法執(zhí)行完的時(shí)候線(xiàn)程會(huì)自動(dòng)結(jié)束,如果要手動(dòng)結(jié)束一個(gè)線(xiàn)程,你可以用volatile布爾變量來(lái)退出run()方法的循環(huán)或者是取消任務(wù)來(lái)中斷線(xiàn)程。
以上就是java培訓(xùn)機(jī)構(gòu)粵嵌科技的講師給大家整理的零基礎(chǔ)學(xué)習(xí)java技術(shù)的必學(xué)五個(gè)知識(shí)點(diǎn),希望對(duì)大家可以有的很好的幫助。如果說(shuō)你想要學(xué)習(xí)java技術(shù)的話(huà),粵嵌科技?xì)g迎你來(lái)我們公司進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽(tīng)資格按鈕來(lái)獲取我們java培訓(xùn)的免費(fèi)課程試聽(tīng)資格,來(lái)和我們的講師進(jìn)行面對(duì)面的交流和溝通并更加深入的了解我們粵嵌科技。