更新時(shí)間:2020-02-26 11:02:05 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2348次
1.線程與并發(fā)
1.1.理解線程與進(jìn)程的區(qū)別(了解)
進(jìn)程:是指一個(gè)內(nèi)存中運(yùn)行的應(yīng)用程序,每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個(gè)進(jìn)程中可以有多個(gè)線程(1,n)。比如在Windows的任務(wù)管理器中,一個(gè)運(yùn)行的xx.exe就是一個(gè)進(jìn)程。
線程:是指進(jìn)程中的一個(gè)執(zhí)行任務(wù)(控制單元),一個(gè)進(jìn)程中可以運(yùn)行多個(gè)線程,多個(gè)線程可共享數(shù)據(jù)。
多進(jìn)程:操作系統(tǒng)中同時(shí)運(yùn)行的多個(gè)程序。
多線程:在同一個(gè)進(jìn)程中同時(shí)運(yùn)行的多個(gè)任務(wù)。
一個(gè)進(jìn)程至少有一個(gè)線程,為了提高效率,可以在一個(gè)進(jìn)程中開啟多個(gè)控制單元,這就是多線程。
1.2.主線程main(了解)
在運(yùn)行一個(gè)簡(jiǎn)單的Java程序的時(shí)候,就已經(jīng)存在了兩個(gè)線程,一個(gè)是主線程,一個(gè)是后臺(tái)線程——維護(hù)的垃圾回收。主線程很特殊,在啟動(dòng)JVM的時(shí)候自動(dòng)啟動(dòng)的。
1.3.線程的創(chuàng)建和啟動(dòng)(掌握)
方式一,繼承Thread類:
自定義類繼承Thread
覆寫run方法
創(chuàng)建自定義類對(duì)象
自定義類對(duì)象調(diào)用start方法
方式二,實(shí)現(xiàn)Runnable接口
自定義類實(shí)現(xiàn)Runnable接口
覆寫run方法
創(chuàng)建自定義類對(duì)象
把自定類的對(duì)象作為Thread類構(gòu)造器參數(shù),并調(diào)用Thread對(duì)象start方法
第一種使用起來方便,啟動(dòng)一個(gè)線程也方便,很多功能都在Thread類中定義好了;
第二種方式啟動(dòng)得依賴于Thread,因?yàn)楸旧鞷unnable中只有run方法,請(qǐng)看Thread的構(gòu)造方法。
1.3.1.線程體-run方法(掌握)
不管哪種方式創(chuàng)建的線程,都得覆寫run方法,因?yàn)檫@是線程體方法,該方法在線程啟動(dòng)之后會(huì)自動(dòng)被調(diào)用。
publicvoidrun(){
//線程體,線程啟動(dòng)時(shí),會(huì)自動(dòng)調(diào)用本方法,所有這里是我們寫代碼的主體部分
}
線程的執(zhí)行隨機(jī)性:
一旦一個(gè)線程啟動(dòng)之后就是一個(gè)獨(dú)立的線程,等待CPU的調(diào)度分配資源,不會(huì)因?yàn)閱?dòng)它的外部線程結(jié)束而結(jié)束。
多次運(yùn)行該程序,觀察每次運(yùn)行的結(jié)果。
1.3.2.線程的啟動(dòng)(掌握)
啟動(dòng)線程必須調(diào)用線程類Thread中的start方法,該方法應(yīng)該由Thread類的一個(gè)實(shí)例來調(diào)用,下面是方法簽名:
publicvoidstart()
底層會(huì)調(diào)用該線程的run方法。
只有調(diào)用了線程對(duì)象的start方法才會(huì)開啟一個(gè)新的線程,如果是直接調(diào)用對(duì)象的run方法不會(huì)開啟新的線程,只是一個(gè)單線程。
注意:?jiǎn)?dòng)一個(gè)新線程,不能使用run()方法,只能使用start方法。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java線程學(xué)習(xí)教程:多線程基礎(chǔ)開發(fā)”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
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í)