Java 实现可运行-只有一个方法?

Java 实现可运行-只有一个方法?,java,multithreading,runnable,Java,Multithreading,Runnable,我有一个包含几个方法的类(casa(),run(),predio(),…)。我的类实现了Runnable。当我用类的对象创建线程时,它会执行所有的方法吗?有没有办法选择执行哪一个?这是我的Runnable类: public class acao implements Runnable { public void casa() { for (int i = 0; i < 90000; i++) { System.out.println(i +

我有一个包含几个方法的类(
casa()
run()
predio()
,…)。我的类实现了
Runnable
。当我用类的对象创建线程时,它会执行所有的方法吗?有没有办法选择执行哪一个?这是我的
Runnable
类:

public class acao implements Runnable {

    public void casa() {
        for (int i = 0; i < 90000; i++) {
            System.out.println(i + "casa");
        }
    }

    public void run() {
        for (int i = 0; i < 90000; i++) {
            System.out.println("t" + i);
        }
    }

    public void predio() {
        for (int i = 0; i < 90000; i++) {
            System.out.println(i + "predio");
        }
    }

    public void carro() {
        for (int i = 0; i < 90000; i++) {
            System.out.println(i + "Carro");
        }
    }

}
我有一个想法

public class EscolheAcao implements Runnable {

public String acao;

public EscolheAcao(String a) {
    this.acao = a;
}

public void run() {
    escolhe(acao);
}

public void escolhe(String acao) {
    acao a = new acao();

    if (acao.equals("carro")) {
        a.carro();
    }
    if (acao.equals("casa")) {
        a.casa();
    }
    if (acao.equals("predio")) {
        a.predio();
    }
   }
}

不,它不会运行所有的方法,只运行run()方法。阅读java.lang.Thread类的javadoc。用大写字母开头类名也是一种很好的做法——所以是Acao,而不是Acao

事实上,您甚至不需要让自己的类可以运行。使用以下匿名类:

Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            Acao a = new Acao();
            a.predio();
            a.casa();
            a.carro();
        }
    });
t.start();

什么是Executar/Executará?你对Stackoverflow也是新手。所以,请花些时间在帮助中心,以了解什么构成了好的问题。。。换句话说:不知道你想要什么;请后退一步,记住我们不是你;我们不知道你在想什么。贵吗?这是谷歌还是必应翻译的?如果您使用的是Swing和JProgressBar,则有。抱歉。“implementrunnable”会执行所有方法吗?有没有办法只执行一个选定的方法?这三种方法是静态的吗?如果不是,您是否总是希望为类的同一实例执行它们?请包含一些代码来演示您正在尝试做的事情。我们的想法是使用这些方法中的一种或两种。不是所有的,那么您需要弄清楚线程应该如何知道要调用哪些方法。您可以将实例属性存储在Acao类中,称为“callMethodX”
Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            Acao a = new Acao();
            a.predio();
            a.casa();
            a.carro();
        }
    });
t.start();