為什么在stage的run方法中不設(shè)置sleep方法,那么keepRunning值會(huì)直接設(shè)置為false?
我不設(shè)置sleep后,子線程直接輸出結(jié)束語(yǔ)句了,沒有執(zhí)行while循環(huán),這是為什么?
難道如果不設(shè)置sleep,那么只會(huì)執(zhí)行Stage線程?所以即使在stage的run方法中即使start了其他線程,也不會(huì)執(zhí)行?
我不設(shè)置sleep后,子線程直接輸出結(jié)束語(yǔ)句了,沒有執(zhí)行while循環(huán),這是為什么?
難道如果不設(shè)置sleep,那么只會(huì)執(zhí)行Stage線程?所以即使在stage的run方法中即使start了其他線程,也不會(huì)執(zhí)行?
2017-07-03
舉報(bào)
2017-07-26
其他線程在他的start()方法執(zhí)行后,并沒有立即獲得cpu時(shí)間,所以里面的run()方法沒有立即執(zhí)行,等到stage線程讓出cpu時(shí)間后才會(huì)執(zhí)行。但是你沒休眠,stage線程會(huì)執(zhí)行到賦值keeprunning為false,stage線程這時(shí)讓出cpu時(shí)間,其他線程再試行,但已經(jīng)不會(huì)打印輸出語(yǔ)句了。如果你有休眠,stage線程執(zhí)行到休眠時(shí)就讓出了cpu時(shí)間,后面的給keeprunning賦值沒有執(zhí)行,所以可以打印、
2017-07-03
是不是即使調(diào)了start方法,只要沒有釋放資源,其他線程也無(wú)法執(zhí)行?