問題タブ [concurrentmodification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
262 参照

java - プログラム内のすべてのメソッドが同期されているときに、ConcurrentModificationException が発生する可能性はありますか?

プログラム全体のすべてのメソッド(静的メソッドとメソッドを含む)を同期させたConcurrentModificationExceptionにもかかわらず、main

非表示のイテレータはありません。

  1. それはどのように可能ですか?
  2. どういう意味ですか?
  3. どうすれば修正できますか?
0 投票する
1 に答える
119 参照

mysql - 多対多の同時実行の競合を処理するにはどうすればよいですか?

gmail のラベルに似たアプリケーション機能があり、アイテムに「タグ付け」できます。現在、これは並行アプリケーションです。つまり、いわゆる「ホワイトボード」は複数のユーザーが編集できます。つまり、多くのユーザーが項目を再グループ化することを選択できます。基本的に複数のアイテムを同時にタグ付けします。

間違いなく競合が発生しますが、問題はそれをどのように処理するのが最善かということです。心に浮かぶ唯一の戦略は、有名な ALOHA プロトコルに似ています。つまり、何かが変更されたかどうかをコミットする前にチェックします。変更されている場合は、中止してユーザーに通知します。そうでなければコミットします。これは非常に非効率的な IMO です。

以下に 2 つの類似したアイデアを示します。比較すると、一方は難しく、他方は簡単です。

最初は簡単です:)-変更を上書きします。つまり、重複は更新されるだけですが、新しいものもタグ付けされます。

難しいもの: どれが「削除」されるかを確認します。つまり、分類に属さないものがある可能性があります (ユーザー 2 によると言う. つまり、ユーザー 1 が変更を行い、ユーザー 2 も同時に変更を行った.基本的に、タグ付けされたアイテムのセット {user1 - user2} を見つけます)。これは非常に難しく、努力する価値はありません。

このような場合に、ユーザー エクスペリエンスを妨げず、混乱させないベスト プラクティス ソリューションは何かと考えていました。

(これは、MySQL バックエンドと Jquery/ajax フロントエンドを備えた J2EE/Restlet アプリです)

0 投票する
3 に答える
3114 参照

java - Javaリストと再帰により、同時変更例外が発生します

次の関数は、リストを再帰的にウォークスルーし、常に半分に分割して、サブリストで何かを実行します。リストサイズが2の場合、再帰は中断されます。リストを反復処理するときにリストを変更すると、同時変更例外が発生することがわかっています。しかし、私は反復を使用しません、そしてそれはまだ起こります:

0 投票する
1 に答える
652 参照

java - Java-ConcurrentModificationException

次のコードは、呼び出されるたびにConcurrentModificationExceptionをスローします。2番目のコードは例外をスローしませんが、それは私が必要とする正しいロジックではありません。オブジェクトがのインスタンスである場合、メソッドがEditorFrame何であるかであるカスタム廃棄戦略を呼び出す必要があります。close()ただし、それが単なる基本フレームである場合は、それを呼び出したいと思いますdispose()

私はこのサイトを見て、いくつかの指示に従いましたが、私が見つけたものはどれもうまくいきませんでした。

例外をスローするコード:

このコードは機能しますが、私が望むものではありません。

助けてくれてありがとう!

0 投票する
4 に答える
1312 参照

java - Java でのスレッドの同期

同じオブジェクト、たとえば MyObject を変更する 2 つのスレッドがあり、オブジェクトを同期しました。しかし、スレッドの 1 つで別のオブジェクトが変更されているため、MyObject を呼び出す必要があります。

いえ

これにより、ConcurrentModificationExceptions が発生しています。これを解決する方法がわかりません。同期しないと、両方のスレッドが MyObject を呼び出そうとするため、例外が発生します。どうすればこれを修正できますか?

更新: コードは Android デバイス用です。ここでは Android 固有のオブジェクトが使用されていないため、これまで言及していませんでした。LogCat の出力はあまり役に立ちません

02-03 02:47:43.660: エラー/AndroidRuntime(5258): キャッチされていないハンドラー: キャッチされていない例外が原因で終了するスレッドのメイン 02-03 02:47:43.670: エラー/AndroidRuntime(5258): java.util.ConcurrentModificationException 02-03 02:47:43.670: エラー/AndroidRuntime(5258): java.util.AbstractList$SimpleListIterator.next(AbstractList.java:64) 02-03 02:47:43.670: エラー/AndroidRuntime(5258): com.jjg .myapp.gameunit.findEnemy(MoveableUnit.java:656)//<--- このメソッドでは、Gamestate のコレクションは 02-03 02:47:43.670: ERROR/AndroidRuntime(5258): at com.jjg.myapp. gameunit.update(GameUnit.java:416)

同期しようとしていたオブジェクトは、基本的に gs と呼ばれる GameState です。ArrayLists、配列、およびその他のオブジェクトの品揃えを収容します。gs は静的ではありません。

問題が発生する上記の方法は次のとおりです。

getAllUnits は、GameUnits の ArrayList を返します (メソッドを呼び出す GameUnit を含む - オブジェクトが削除または作成されないため、反復子は必要ありません)。

0 投票する
5 に答える
2751 参照

android - MapView での java.util.ConcurrentModificationException

フェラ

私は何日もの間、非常に奇妙な問題に直面しています。オーバーレイを頻繁に更新しようとしています。そのため、マップに触れたときに「java.util.ConcurrentModificationException」を取得したり、マップがオーバーレイを更新しようとしたときに取得したりすることがありますが、このエラーが発生している完璧な行が見つかりません。

バルーン オーバーレイを使用しています

"mapview.getOverlay()"1秒間に4〜5回呼び出しているため、エラーが発生していると思います..

ありがとう、

CapDroid

これがコードフローです..私のスレッドコード....

これが私の updateMethod(); です。 このコードでは、 hashmapOverlay は以下のような HashMap です

ここに私の addOverlayMethod があります

0 投票する
3 に答える
183 参照

java - 同時変更例外 java、ここでイテレータを使用できないと思いますか?

特定のアイテムを反復して削除する必要があるリストがあります。イテレータでは機能しないアイテム ( などls.getStatus()) ごとにメソッドを呼び出す必要があるため、イテレータを使用できません。ls.getStatus() == 0そのアイテムを削除する必要がある場合。どうすれば回避できConcurrentModificationExceptionますか?

ありがとう