Java で遭遇した最も頻繁な並行性の問題は何ですか? [closed] 質問する

Java で遭遇した最も頻繁な並行性の問題は何ですか? [closed] 質問する

これは、Java の一般的な並行性の問題に関する一種のアンケートです。例としては、典型的なデッドロックや競合状態、あるいは Swing の EDT スレッド バグなどが挙げられます。私は、起こり得るさまざまな問題だけでなく、最も一般的な問題にも興味があります。したがって、コメントごとに Java 並行性バグの具体的な回答を 1 つ残し、遭遇した問題を見つけた場合は投票してください。

ベストアンサー1

私の最も痛いもの1位同時実行の問題が発生したのは2つの異なるオープンソースライブラリは次のようなことを行いました:

private static final String LOCK = "LOCK";  // use matching strings 
                                            // in two different libraries

public doSomestuff() {
   synchronized(LOCK) {
       this.work();
   }
}

一見すると、これは非常に単純な同期の例のように見えます。しかし、文字列は抑留されたJava では、リテラル文字列は、"LOCK"同じインスタンスになりますjava.lang.String(互いにまったく異なる宣言がされているにもかかわらず)。結果は明らかに悪いです。

おすすめ記事