将自定义方法作为线程运行

本文关键字:线程 运行 自定义方法 | 更新日期: 2023-09-27 17:59:06

在Java中,要运行一个单独的线程,我们必须实现Runnable接口或扩展thread类,因此实际上只有run()方法可以用来启动一个新线程。

在C#中,我们可以调用任何方法作为新线程运行,使用新线程(目标函数);

因此,实际上在Java中,我们最终为一个函数创建了一个单独的类,以便能够作为线程运行。那么有没有办法避免这种情况呢?

我想避免架构中的任何更改,方法本身也不是很长,只有两个循环很耗时。

将自定义方法作为线程运行

虽然不完美,但可以使用匿名内部类来包装函数。在单独的线程上执行函数的代码看起来像这样:

Thread t = new Thread () {
     public void run()
     {
        myMethodHere();
     }
};
t.start();

在java中,函数(甚至更好的方法)本身不是对象,因此您必须创建这样的包装器才能执行您想要的操作。

new Thread() {
    public void run() {
        originalMethod();
    }
}.start();

就我的Java知识而言:运行线程的唯一方法是通过任何提供的方法调用run(),例如您命名的方法。

但是,您可以在运行中直接调用您的方法。然后你也不会改变你的架构。

您可以创建一个使用反射来实现的辅助方法

backgroundMethod("methodName");

backgroundMethod(object, "methodName");

除非你经常这样做,否则使用其他人建议的Runnable可能会更好/更清晰。