0
を理解し、彼らは間違った結果を生成します。ここでの問題は何ですか?ヘルプ初心者は、私は(下見て)MyThreadsランニングの配列を持っているスレッド
import java.util.*;
class MyThread extends Thread {
public static long N;
public static long sum = 0;
synchronized public void inc() {
sum++;
}
public void run() {
for (long i = 0; i < N; i++) {
inc();
}
}
public MyThread(long num) {
N = num;
}
}
私の推測では、スレッドが互いに干渉して間違った結果を引き起こしていると思いますが、どこでどのように理解できません。
どのようにこれらのスレッドを実行していますか、どのような結果が期待されますか? –
どのような結果が正しくありませんか?結果として何を期待していますか?開始して確認するコードスニペットについてはどうですか? –
静的変数を増分しています。 MyThreadのすべてのインスタンスで共有される変数で何が起こると思いますか? – duffymo