【发布时间】:2012-04-18 11:14:56
【问题描述】:
停止一个线程,如:
new Thread ( new Runnable() {
public void run(){
if ( condition ) return; // this will stop the thread.
}
}).start();
是否正确/安全?
【问题讨论】:
-
是的...它是正确且安全的。你自己没试过吗?
-
是的,我试过了,它有效,但我不确定这是否是最好的解决方案......
-
是安全的,但是这段代码没有任何意义。 run() 方法将返回句点。如果你在你的线程中引用一个布尔值并且依赖于它(就像循环直到它被满足的情况),条件应该是同步的。所以虽然这个例子总是会安全返回,但使用条件不一定是安全的。
-
@sethro - 如果
condition是从另一个线程设置的变量,则声明它可能就足够了。但是,在 OP 的问题中没有迹象表明condition正在从另一个线程更改。 -
@sethro,就我而言,只是这个线程可以改变
condition(在if语句之前),所以我认为不需要同步......
标签: android multithreading return