课程
/后端开发
/Java
/深入浅出Java多线程
代码中没有写if判断大于多少次,会不再循环
但是这个循环了很多次,原理是什么?
2018-05-27
源自:深入浅出Java多线程 2-4
正在回答
首先stage()本身就是一个线程,而在这个线程里又嵌了两个线程。写在Stage.Run()里面的Thread.sleep(50)只是让stage这个线程休眠50毫秒,但是并没有终止它嵌入的两个线程,所以两个军队一直在打,直到stage休眠结束执行到keepRunning = false时,三个线程都结束了,另外如果你把stage里面的Thread.sleep()注释掉你会发现它一次都没执行,我个人理解是线程异步,先编译再执行线程,编译完keepRunning已经是false了,所以不执行。
Thread.sleep方法让线程休眠了5毫秒,也就是说5毫秒后循环结束
同问,keepRunning = false;什么时候执行
我是叶霖 提问者
因为有for循环呀,里面的i值就是要循环几次,从0到i值
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
1 回答关于使用Thread.yield()进行线程通讯的问题
3 回答运行结果问题
2 回答关于WaitSet 问题
4 回答为什么在为什么在输出了“程咬金的,,,,乐业”这一行后,两方军队的进攻批次最少是0最多是5呢???
2 回答关于循环的问题