我有一些类会生成大量线程,并且应用程序速度非常慢并且占用大量内存。我们决定使用池线程来减少线程开销。 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()
方法将允许您等待,直到获得结果。
关于java - 将函数传递给 PoolThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26218722/