Example of thread join
এই উদাহরণে, join এর মাধ্যমে আমরা দুইটা থ্রেডের রেজাল্টকে এক করে দেখবো
public class ComplexCalculation {
public BigInteger calculateResult(BigInteger base1,
BigInteger power1,
BigInteger base2,
BigInteger power2) {
BigInteger result;
PowerCalculatingThread thread1 = new PowerCalculatingThread(base1, power1);
PowerCalculatingThread thread2 = new PowerCalculatingThread(base2, power2);
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
result = thread1.getResult().add(thread2.getResult());
return result;
}
private static class PowerCalculatingThread extends Thread {
private BigInteger result = BigInteger.ONE;
private BigInteger base;
private BigInteger power;
public PowerCalculatingThread(BigInteger base, BigInteger power) {
this.base = base;
this.power = power;
}
@Override
public void run() {
for(BigInteger i = BigInteger.ZERO;
i.compareTo(power) !=0;
i = i.add(BigInteger.ONE)) {
result = result.multiply(base);
}
}
public BigInteger getResult() {
return result;
}
}
}