我有一些生成大量线程的类,应用程序的运行速度确实很慢,并且占用大量内存。我们已决定使用Poolthread来减少线程开销。 PoolThread是在类中管理的,我有一个问题:如何将通用函数作为参数传递并在PoolThread中执行一次?
例如。

public void executeFunction( myFunction) {
    executorService.execute(new Runnable() {
        public void Run() {
            run the function that I've passed
        }
    }
}

最佳答案

由于函数在Java中不存在适当的功能,因此您最好为executorService提供包含要执行的代码的Runnable(甚至更好的Callable)对象,并通过该方法返回相应的Future。

实际上,不管您信不信,这个方法存在于ExecutorService中:<T> Future<T> submit(Callable<T> task)

Future#get()方法将允许您等待直到获得结果。

07-24 14:54