|
1
5
非常接近正确的想法。但是,在你的
这样中断的状态会再次继续,而不会在第二个块中执行任务。 编辑以使我的观点更清楚(因为op的编辑似乎遗漏了我的初始点:-p):您应该这样编写代码:
第二次编辑解释什么是中断。-)
当你打电话
JDK中内置的一些函数,如
所以,如果调用其中一个函数,就不需要手动检查中断标志。但是如果你没有,例如,如果你正在做密集的处理而不是等待,那么你应该定期检查标志。 检查标志有两种方法:
第一个清除中断标志,第二个不清除。您必须决定哪个版本对您的应用程序逻辑“更正确”。 |
|
|
2
1
看看这篇文章
JavaSpecialists
新闻稿,包括如何
|
|
|
3
0
是的,这是条路 |
|
4
0
system.out.println(thread.interrupted());//false
另一种选择是
|
|
|
5
0
我想编辑并注意到我今天在这里学到了一个教训。正如我在下面两段中所解释的那样,没有理由实现布尔值;中断机制为我做到了这一点。出于某种原因,我假设“中断”会使线程停止运行(我不知道当时我认为isInterrupted()做了什么!). 所以, 这里有一个不该做的例子。 继续使用你的中断技巧! (请不要轻视我…) 我倾向于避免打断别人,但特别是打断别人的话。在您的例子中,您正试图使用interrupt()作为stop()的替代方法,stop()已被出于正当理由而弃用。您只需要声明一个布尔值,它表示线程是否应该停止计数,并让线程连续检查该布尔值。然后,当父线程准备好让计数器停止时,它应该将布尔值设置为true(stop),这将导致计数器线程在再次检查该值时立即停止。
在计数器线程的匿名类定义中,添加
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 10 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 10 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 10 月前 |
|
pebble unit · 如何检查以前缀开头、以后缀结尾的属性(不是属性值) 11 月前 |
|
|
rudraraj · java中未声明最终变量 11 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 11 月前 |