我有一个简单的方法,可以计算数组中每个数字的 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方面完全是菜鸟,需要你的帮助=)
最佳答案
从高层次上看:
- 您创建一个可调用类,该类具有 pow 方法的实现。
- 您根据您似乎已经计算出的最大可用处理器创建了一个执行程序。
- 您创建可调用对象并将其提交给执行程序。
- 使用 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/