我想写一个android代码,它在并行模式下乘以10,000个数字。 例如,将它们分成组并将每个组乘以线程..((异步任务))然后乘以每个组的结果。 但我不知道怎么做,有人可以帮忙吗?
答案 0 :(得分:0)
线程池可以运行任务的多个并行实例,因此您应该确保代码是线程安全的。包含可由同步块中的多个线程访问的变量。这种方法将阻止一个线程读取变量而另一个线程正在写入变量。通常情况下,这种情况会出现在静态变量中,但它也会出现在只实例化一次的任何对象中。
通过使用线程池概念,您可以使用给定的代码链接:
https://developer.android.com/training/multiple-threads/create-threadpool.html#ClassStructure
使用异步任务时,您也可以检查:
https://software.intel.com/en-us/articles/developing-android-applications-using-parallel-programming
答案 1 :(得分:0)
使用并行流。
List<BigInteger> integers = new ArrayList<>();
// fill data
BigInteger result = integers.parallelStream()
.reduce(BigInteger.ONE, (a, e) -> a.multiply(e));
System.out.println(result);