将自定义方法作为线程运行
本文关键字:线程 运行 自定义方法 | 更新日期: 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可能会更好/更清晰。