- 相關(guān)推薦
Java語(yǔ)言start和run方法的區(qū)別
導(dǎo)語(yǔ):Thread類(lèi)定義了一個(gè)功能,用于存儲(chǔ)線程要運(yùn)行的代碼,該存儲(chǔ)功能就是run方法。那么它和start方法有什么不同呢?讓我們了解一下吧!
調(diào)用start方法方可啟動(dòng)線程,而run方法只是thread的一個(gè)普通方法,調(diào)用run方法不能實(shí)現(xiàn)多線程;
Start()方法:
start方法用來(lái)啟動(dòng)線程,實(shí)現(xiàn)了多線程運(yùn)行,這時(shí)無(wú)需等待run方法體代碼執(zhí)行完畢而直接繼續(xù)執(zhí)行下面的
代碼。通過(guò)調(diào)用Thread類(lèi)的start()方法來(lái)啟動(dòng)一個(gè)線程,這時(shí)此線程處于就緒(可運(yùn)行)狀態(tài),并沒(méi)有運(yùn)行,
一旦得到cpu時(shí)間片(執(zhí)行權(quán)),就開(kāi)始執(zhí)行run()方法,這里方法run()稱(chēng)為線程體,
它包含了要執(zhí)行的這個(gè)線程的內(nèi)容,Run方法運(yùn)行結(jié)束,此線程隨即終止。
Run()方法:
run()方法只是Thread類(lèi)的一個(gè)普通方法,如果直接調(diào)用Run方法,程序中依然只有主線程這一個(gè)線程,
其程序執(zhí)行路徑還是只有一條,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼,
這樣就沒(méi)有達(dá)到多線程的目的。
【Java語(yǔ)言start和run方法的區(qū)別】相關(guān)文章:
Java和C語(yǔ)言的區(qū)別07-28
Java語(yǔ)言中substr和substring的區(qū)別07-12
C語(yǔ)言與JAVA的區(qū)別07-07
JavaScript與java語(yǔ)言的區(qū)別05-29
Java語(yǔ)言中變量和常量之間的區(qū)別04-06
Java和PHP的區(qū)別04-30
java和js的區(qū)別08-05