哪個方法是啟動一個線程的 方法調用和線程啟動的區(qū)別?
方法調用和線程啟動的區(qū)別?區(qū)別:調用start方法實現(xiàn)多線程,調用run方法實現(xiàn)多線程。啟動:用Start方法啟動線程,實現(xiàn)多線程。此時,不需要等待run方法體代碼完成執(zhí)行,而是直接繼續(xù)執(zhí)行下面的代碼
方法調用和線程啟動的區(qū)別?
區(qū)別:調用start方法實現(xiàn)多線程,調用run方法實現(xiàn)多線程。啟動:用Start方法啟動線程,實現(xiàn)多線程。此時,不需要等待run方法體代碼完成執(zhí)行,而是直接繼續(xù)執(zhí)行下面的代碼。通過調用thread類的Start()方法來啟動線程。此時,線程處于就緒(可運行)狀態(tài),不會運行。一旦獲得SPU時間片,就會執(zhí)行run()方法。這里,run()方法稱為線程體,它包含要執(zhí)行的線程的內(nèi)容。run方法完成后,線程將立即終止。運行:運行()方法只是類的一個常用方法。如果直接調用run方法,則程序中仍然只有一個主線程,其程序執(zhí)行路徑仍然只有一個,或者需要按順序執(zhí)行,或者需要等待run方法體執(zhí)行完畢后才能繼續(xù)執(zhí)行下面的代碼。這樣,就達不到寫線程的目的。結論:可以通過調用start方法來啟動線程,而run方法只是線程的一個常用方法調用,在主線程中執(zhí)行。
線程啟動有哪幾種方式?
實現(xiàn)Java多線程有三種方式:繼承線程類、實現(xiàn)可運行接口、使用executorservice、callable和future實現(xiàn)返回結果的多線程。前兩個方法在線程執(zhí)行后沒有返回值,只有最后一個方法有返回值。[java]查看純拷貝