Mat*_*nge 12 java multithreading
"有一次,当你知道线程即将退出时,吞下一个中断是可以接受的.只有在调用可中断方法的类是a的一部分而
Thread
不是Runnable
[...]的一部分时,才会出现这种情况.
我现在总是Runnable
为我的线程实现.给出这样的Runnable
实现:
public class View() implements Runnable {
@Overload
public void run(){
Thread worker = new Thread(new Worker());
worker.start();
do{
try{
TimeUnit.SECONDS.sleep(3);
updateView();
}catch(InterruptedException e){
worker.interrupt();
// Thread.currentThread().interrupt();
return;
}
}while(true);
}
protected void updateView(){
// …
}
}
Run Code Online (Sandbox Code Playgroud)
Thread.currentThread().interrupt();
在return;
发言之前是否真的有必要打电话?是不是return;
已经执行干净的enaugh退出?叫它有什么好处?文章指出应该这样做,因为否则"[......]调用堆栈上面的代码将无法找到它[...]".Thread.State.TERMINATED
在应用程序关闭时,没有它的中断标志设置的线程有什么好处?你能给我一个例子,在这个例子中,Runnable
出于合理的原因检查中断标志以外的代码吗?
顺便说一句,它是一个更好的代码设计,Thread
而不是实现Runnable
?