2017-07-26 13 views
-4

10,000個の数値をパラレルモードで乗算するアンドロイドコードを書きたいと思います。 たとえば、それらをグループに分割し、thread ..((非同期タスク))の各グループに掛けて、各グループの結果を乗算します。 しかし、私はそれを行う方法を知らない、誰も助けることができますか?パラレルモードでBigintegersを掛ける

答えて

0

使用パラレルストリーム。

List<BigInteger> integers = new ArrayList<>(); 
// fill data 
BigInteger result = integers.parallelStream() 
    .reduce(BigInteger.ONE, (a, e) -> a.multiply(e)); 
System.out.println(result); 
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