輔助的代碼有什么用
輔助的代碼還是要講清楚,不知道什么意思難以理解例子。作為一個初學者的猜測: 1.兩個線程start后會調用實現的run方法,每循環一次就釋放一次CPU資源(調用了 yield 2.輔助代碼Thread.sleep(50)表示CPU釋放資源休眠50毫秒,大概是用于掛起當前線程(不造什么用 3.設置keepRunning為false確保兩個線程中的死循環會停下來 4.運行armOfRevolt.join()方法讓當前運行線程阻塞,直到amyOfRevolt運行完畢,再運行剛才停止的線程 我不懂執行順序,一旦設置keepRunning為false,循環停止,不再輸出,join方法不知道有什么意義;
2018-08-27
Thread.sleep(50)的作用是讓stage()這個線程休眠五十毫秒,寫在Thread.sleep(50)后面的就是終止條件,表面來看整個邏輯確實很奇怪,因為你發現一整套下來線程跑的次數比你想象中的多的多。而真正讓線程跑了那么多的就是這個休眠50毫秒。原因:
這里啟用了兩個線程,而這兩個線程是嵌套在stage()這個線程里面的。Thread.sleep(50)只是讓stage()休眠了五十毫秒,并沒有休眠
而這兩個線程在沒有遇到keepRunning=false之前是死循環,這個時候Thread.sleep(50)又讓stage休眠了50毫秒,在這50毫秒里兩軍一直在干架,(如果你把時間改成1000,那會執行更多),所以原因差不多就這個吧,其他的也不多說了,你是個聰明人。
2017-07-04
yield()方法會使該線程釋放對cpu目前的占用,方便其他線程可以競爭cpu
join()方法是會讓執行該方法的線程一直執行完run()方法后,程序才會繼續往下執行