java - 将函数传递给 PoolThread

标签 java multithreading reflection

我有一些类会生成大量线程,并且应用程序速度非常慢并且占用大量内存。我们决定使用池线程来减少线程开销。 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/

相关文章:

java - 每次我添加 google.android.gms :play-services-ads:18. 1.0 时 list 合并失败

java - 在java上打开与一台服务器的两个端口连接

c++ - 文件线程

java - 使用反射调用方法/将列表转换为 Var Args

java - 检测何时在 Root设备上接听去电

Java版本的TinyGP,其输出和测试数据

java - 在java中通过cfml将 Crystal 报表导出为PDF

取消 pthread 似乎很奇怪

java - 这是 Java 类的多个函数的线程化和同步的好方法吗?

c# - 如何找到创建对象的程序集?