2011-11-17 13 views
27

私のプログラムで同時に実行されている2つのスレッドがあり、その中の1つにブレークポイントを置くと、このブレークポイントがヒットしたときに他のスレッドも停止しますか、ブレークポイントはすべてのスレッドを停止しますか?

(私はJavaで書くとNetBeansを使用しています)

+4

@mreも、環境設定に依存するmijerの回答からわかるように、私の観察は私に完全な絵を与えていないので、この質問は尋ねる価値がありました。 –

答えて

33

ブレークポイントは、彼らがどのように振る舞うべきかのオプションを持っています。ただし、breakpopintプロパティを変更することで動作を変更できます。

+0

他のIDEと話すことはできませんが、IDEAではガター内のブレークポイントを右クリックし、サスペンドモードを「すべて」(デフォルト)から「スレッド」に変更できます。 Guavaイベントバスハンドラのブレークポイントがメインスレッドを一時停止していた理由を理解しようとしていた今日まで、これを実行できるかどうかはわかりませんでした。 – joshbodily

9

私はそれがコードにブレークポイントにヒットしたら、他のスレッドの実行を継続する一方、各スレッドは、停止することを信じています。私はTomcat時代からこれを覚えています。単一のスレッドまたはすべてのスレッドのデフォルトのブレークポイントの停止を打つだけのスレッドによって

breakpoints

+0

私たちが単一のWebアプリケーションについて話しているのであれば、これは当てはまりそうだと思います。 intellijのアイデアブレークポイントでは、デフォルトですべてのスレッドが停止します。このため、私は@Asyncをデバッグしようとしましたが、問題がありました:私が期待したとおりにデバッグで動作しませんでした – divideByZero

+0

間違っています。ブレークポイントの設定方法によって異なります。 – snovelli

1

EclipseおよびNetBeansでは、ブレークポイントがヒットしたときに現在のスレッドを一時停止し、IntelliJではすべてのスレッドを一時停止するのがデフォルトの動作です。

関連する問題