2つのスレッドを使用して2つの数値を追加したいが、どこが間違っているのか分からなかった。
私の出力は間違っています。私は問題が同期されていますが、解決できないことを知っています。2つのスレッドを使用して2つの数値を加算する
import java.io.*;
class GFG {
public static void main (String[] args) throws InterruptedException {
final Addition a=new Addition();
Thread t1 = new Thread(new Runnable()
{
public void run(){
try {
a.add(1,10);
} catch(Exception e) {
}
}
});
Thread t2 = new Thread(new Runnable()
{
public void run(){
try {
a.add(1,4);
} catch(Exception e) {
}
}
});
t1.start();
t2.start();
t1.join();
t2.join();
}
public static class Addition{
int a, b;
int sum=0;
public void add(int a, int b) throws InterruptedException{
synchronized(this){
for (int i=a;i<=b;i++){
sum=sum+i;
Thread.sleep(1000);
}
System.out.println("Sum="+sum);
}
}
}
}
出力:
Sum=55
Sum=65
と出力を見て、私はそれを言うことができます...スレッドT1のタスクを完了した後、スレッドT2はT1にその結果を追加して...? ?
両方のスレッドで 'a'を使用しています... –
取得したいものを理解するには、t1とt2から期待している最終結果は何ですか? –
あなたの意図する結果は何ですか? – brummfondel