java多线程在给定数量的线程之间分割计算

标签 java multithreading

我有一个简单的方法,可以计算数组中每个数字的 pow 并在新数组中返回这些数字...我的问题是如何将此计算拆分为给定数量的线程,从而加快方法的执行速度

public class ExtClass{
    public static long pow(long a, int b) {
        if (b == 0)        return 1;
        if (b == 1)        return a;
        if ((b & 1) == 0)  return     pow (a * a, b/2);
        else               return a * pow(a * a, b/2);

    }

    public static long[] val(long[] a, int p) {
        long[] result_array = new long[a.length];

        for (int i = 0; i < a.length - 1; i++) {
            result_array[i] = pow(a[i], p);
        }

        return result_array;
    }

附注我在java方面完全是菜鸟,需要你的帮助=)

最佳答案

从高层次上看:

  1. 您创建一个可调用类,该类具有 pow 方法的实现。
  2. 您根据您似乎已经计算出的最大可用处理器创建了一个执行程序。
  3. 您创建可调用对象并将其提交给执行程序。
  4. 使用 Future 返回的结果来整理结果

这些链接应该可以帮助您入门: https://blogs.oracle.com/CoreJavaTechTips/entry/get_netbeans_6 http://www.journaldev.com/1090/java-callable-future-example

关于java多线程在给定数量的线程之间分割计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29520422/

相关文章:

java - 为什么有时在 Maven 中测试期间 public static AtomicBoolean 变量为 false?

c# - 如何在工作服务器上实现类似IIS的线程池

java - 从JSON过滤JSON变量

java - 如何从 int 数组中随机选择,然后删除所选元素

java - Android:线程创建另一个单例实例

python - 在 python 中使用多个暗网模型并行执行 GPU

java.sql.SQLException : Exhausted Resultset

java中上传和存储图像的Java解决方案

python - python 中的线程池没有预期的那么快

c++ - 为什么线程中的方法没有运行?