小编典典

您在 Java 中遇到的最常见的并发问题是什么?

all

这是一个关于 Java 中常见并发问题的投票。一个例子可能是经典的死锁或竞争条件,或者可能是 Swing 中的 EDT
线程错误。我对广泛的可能问题感兴趣,也对最常见的问题感兴趣。因此,请为每条评论留下一个关于 Java 并发错误的具体答案,如果您遇到遇到的问题,请投票赞成。


阅读 84

收藏
2022-07-14

共1个答案

小编典典

我见过的最常见的并发问题是没有意识到一个线程写入的字段 不能保证 被另一个线程看到。一个常见的应用:

class MyThread extends Thread {
  private boolean stop = false;

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

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

只要停止不是 易失性 的或不 同步setStop的,就不能保证有效。这个错误尤其可怕,因为在 99.999%
中它在实践中并不重要,因为读者线程最终会看到变化 - 但我们不知道他多久看到它。run __

2022-07-14