数値をべき乗で計算する Java アプリを開発しています。このアプリケーションではコアが 1 つしか使用されていないため、クアッド コア コンピューターを活用したいと考えています。スレッドを同期する方法についてさまざまなチュートリアルを見てきましたが、実際にはわかりません。私のコードは以下の通りです:
public class Bignum{
public static void main(String[] args){
Random generator = new Random();
long start = System.nanoTime();
Random generator1 = new Random();
for (long i=0; i<9000;i++){
int power = generator1.nextInt (17) + 2;
int power1 = generator1.nextInt (25) + 2;
int power2 = generator1.nextInt (72) + 2;
BigInteger num = BigInteger.valueOf (generator.nextInt (7895) + 1);
BigInteger num1 = BigInteger.valueOf (generator.nextInt (1250) + 1);
BigInteger num2 = BigInteger.valueOf (generator.nextInt (9765) + 1);
BigInteger add = num.pow(power);
BigInteger add1 = num1.pow(power1);
BigInteger add2 = num2.pow(power2);
BigInteger sum = add.add(add1);
}
}
}
たとえば、1 つのスレッドでこれを行うにはどうすればよいでしょうか。
int power = generator1.nextInt (17) + 2;
int power1 = generator1.nextInt (25) + 2;
int power2 = generator1.nextInt (72) + 2;
もう1つはこれを行います:
BigInteger num = BigInteger.valueOf (generator.nextInt (7895) + 1);
BigInteger num1 = BigInteger.valueOf (generator.nextInt (1250) + 1);
BigInteger num2 = BigInteger.valueOf (generator.nextInt (9765) + 1);
別のこれ:
BigInteger add = num.pow(power);
BigInteger add1 = num1.pow(power1);
BigInteger add2 = num2.pow(power2);
そして最後のものはこれを行います:
BigInteger sum = add.add(add1);
どうすればそれができますか?また、どうすればそれを9000回繰り返すことができますか? ご協力ありがとうございました。