1. ホーム
  2. java

[解決済み] Javaで最も頻繁に遭遇する並行処理の問題は何ですか?[クローズド]

2022-05-02 11:26:18

質問内容

これは、Javaにおける一般的な並行処理問題についての投票のようなものです。 例えば、古典的なデッドロックやレースコンディション、あるいはSwingのEDTスレッディングバグなどが挙げられます。 私は、考えられる問題の幅と、どのような問題が最も一般的であるかの両方に興味があります。 そのため、Javaの並行処理バグに関する具体的な答えを1つのコメントに残し、あなたが遭遇したバグを見つけたら、投票に参加してください。

解決方法は?

私が見た中で最も一般的な並行処理の問題は、あるスレッドで書かれたフィールドが 保証なし は別のスレッドに見られる可能性があります。よくある応用例です。

class MyThread extends Thread {
  private boolean stop = false;

  public void run() {
    while(!stop) {
      doSomeWork();
    }
  }

  public void setStop() {
    this.stop = true;
  }
}

ストップが 揮発性 または setStoprun 同期 これは動作保証外です。この間違いは特に悪魔のようなもので、99.999%は実際には問題にはなりません。