0

我很困惑哪种方式使用 Run 方法

第一

new Thread(new Runnable() {
@Override
public void run() {
switch case //Here
}
}).start();

第二个

Switch(id){
case :
    new Thread(new Runnable() {
    @Override
    public void run() {

    }
    }).start();

break
}

哪一个最适合在程序中使用。

4

5 回答 5

2

这取决于你想要做什么。当您将某些内容发布到线程时,它将在将来的某个时间运行。

在您的第一种情况下,您的 switch case 语句在您的线程运行之前不会运行。

在第二种情况下,除非您的案例陈述为真,否则您的线程将不会运行。

它们只是不同的逻辑流程,我不确定哪一个可以被认为“更好”。

于 2012-07-07T17:27:41.373 回答
0

尝试这个...

1、Run是Runnable接口中唯一存在的方法,必须在实现Runnable的类中实现。

2.现在在您的代码中,您使用的是实现 Runnable 接口的匿名类。

3.在您的第一个示例中,您的线程必须运行才能使 switch 案例执行。

4.在您的第二个示例中,您的开关案例的特定案例必须执行才能让线程运行。

于 2012-07-07T18:19:19.907 回答
0

我没有太大变化(如果每个案例都有一个 break 语句,至少)。

在每个解决方案中,只会在新线程中执行 switch 语句的一个 case。使用您认为最易读的内容。

在切换的每种情况下重复线程创建代码会添加更多样板代码。另一方面,如果您有一个必须什么都不做的默认情况,那么不值得创建和启动一个新线程来什么都不做。

于 2012-07-07T17:28:58.903 回答
0

第二种情况是最好的,因为只有当你的情况条件为真时线程才会运行,并且它不会对你的应用程序内存产生很大影响。

android 应用程序中的线程过多会影响内存。

于 2012-07-07T17:51:53.427 回答
0

以上两者有什么区别??

第一个问题:线程运行,但是一个case下的编程逻辑可能会也可能不会根据case运行。

第二个问题: 如果 & 仅当情况为真时,线程才会运行。

所以很明显,这两种情况是完全不同的。

你会用哪一个??

这取决于您的要求,使用您需要的逻辑。它完全取决于你。

于 2012-07-07T19:40:47.107 回答