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

时间:2015-04-08 16:34:47

标签: 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;
    }

P.S。我在java中完全是noob,需要你的帮助plz =)

1 个答案:

答案 0 :(得分:2)

高层次:

  1. 您创建了一个可调用的类,它具有pow方法的实现。
  2. 您可以根据您似乎已经找到的最大可用处理器创建执行程序。
  3. 您可以创建callables并将其提交给执行者。
  4. 使用Future's返回整理结果
  5. 这些链接可以帮助您入门: https://blogs.oracle.com/CoreJavaTechTips/entry/get_netbeans_6 http://www.journaldev.com/1090/java-callable-future-example