0

Android SDK ドキュメントの「DDMS の使用」というタイトルのページには、「DDMS がデバッガーと対話する方法」という小見出しの下に次のコメントがあります。

Dalvik の既知のデバッグの問題 - Dalvik VM でのアプリケーションのデバッグは、他の VM と同じように機能するはずです。ただし、同期されたコードからシングル ステップ アウトする場合、「現在の行」カーソルが 1 ステップのメソッドの最後の行にジャンプする場合があります。

このコンテキストでは、2 つの質問があります。

a)「同期コード」が何を指しているのかわかりませんか?「デバッグ」コードまたは「同期」キーワードを使用したコード、または何か他のことについて話しているのでしょうか? このページには定義がなく、同期は一般的な用語であるため、制限が実際にどこにあるのかが明確ではありません。

b)「b」からの回答に応じて、2番目の質問は、同期されたコードの「ステップアウト」とはどういう意味ですか?

これを説明するためのあなたの助けに感謝します。

4

2 に答える 2

1

それらは単に「同期コード」を意味していたと思います。非同期コードは、スケジューラが適切と判断したときに他のスレッドにジャンプする可能性がありますが、同期コードは順番に処理する必要があります。彼らは、Dalvik デバッガーの既知の特殊性について言及しました。それは、実行のある行から次の行にステップする必要があるときに、一見説明のつかないジャンプを行うことです。その問題は実際に私を1、2回混乱させました...

于 2013-10-27T23:56:41.990 に答える
0

synchronized は、メソッドまたはブロックのいずれかで使用できるキーワードです。スレッドを使用する場合に役立ちます。

同期メソッドを使用すると、スレッドの干渉とメモリの一貫性エラーを防ぐための簡単な戦略が可能になります。オブジェクトが複数のスレッドから見える場合、そのオブジェクトの変数へのすべての読み取りまたは書き込みは同期メソッドを介して行われます。

http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

于 2013-10-27T07:33:57.280 に答える