运行自定义方法作为Thread

问题描述

| 在Java中运行单独的线程,我们必须实现Runnable接口或扩展Thread类,因此实际上只有方法Run()可以用于启动新线程。 在C#中,我们可以使用以下方法调用任何方法以作为新线程运行 新线程(目标函数); 因此实际上,在Java中,我们最终为函数创建了一个单独的类,使其能够作为线程运行。 那么有办法避免这种情况吗? 我想避免架构上的任何更改,并且方法本身不是很冗长,它只有两个循环,这很耗时。     

解决方法

        就我的Java知识而言:运行线程的唯一方法是通过提供的任何方法(例如您命名的方法)调用run()。 但是,您可以只在运行中对您的方法进行调用。这样一来,您就不会对架构进行太多更改。     ,        虽然并不完美,但是您可以使用匿名内部类来包装函数。在单独的线程上执行函数的代码如下所示:
Thread t = new Thread () {
     public void run()
     {
        myMethodHere();
     }

};

t.start();
    ,        在Java中,函数(甚至更好的方法)本身不是对象,因此,您必须创建这样的包装器才能执行所需的操作。
new Thread() {
    public void run() {
        originalMethod();
    }
}.start();
    ,        您可以创建一个使用反射来实现的辅助方法
backgroundMethod(\"methodName\");
要么
backgroundMethod(object,\"methodName\");
除非您经常这样做,否则使用其他人建议的Runnable可能会更好/更清晰。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...