Java动态方法线程产生

Jam*_*vec 0 java methods multithreading

使用Java,有没有办法引用一个方法并动态生成一个线程?

例如,如果你有一个方法被调用spawn(),它将获取另一个方法引用的参数,然后它将产生一个运行引用方法的线程.我想代码看起来像:

void spawn(**wayToReferenceANumberOfDifferentMethods currentMethodToLaunch**) {
    new Thread(){
        public void run() {
            // **way to launch the currentMethodToLaunch**
        }
    }.start();
}
Run Code Online (Sandbox Code Playgroud)

为了使上述工作,我想我需要能够引用一种类型method.如果这不可能,为什么会这样呢?

Aur*_*and 5

严格来说?不.Java不是一种功能语言,方法不是对象,不能作为参数传递.

但是,这种一般行为可以使用ExecutorServiceRunnable/ Callables 来完成.

看一下ExecutorService的java doc .

编辑

此外,可以使用各种框架抽象异步执行.例如,在Spring框架中使用@Async批注.