この問題は,サン・マイクロシステムズのJavaエバンジェリストグループが主体になって毎月開催しているセミナー「今月の2時間で学ぶJava Hot Topic」で取り上げたのと同じものです。Javaエバンジェリストグループは5分でわかる今週のJavaホットトピックというブログでも,定期的にJavaのパズルを掲載しており,このパズルも掲載されています。 ですので,このセミナーに参加された方はもう答えを知っていはずですね。正解は(2)です。 この結果は「Swingで実装されている」というところがキーです。同じものをAWTで作り直して実行すると,結果は(6)になります(ソースコード)。 なぜSwingだともともとの意図である(6)になってくれないのでしょうか。 それはSwingがシングルスレッドで実装されているからです。 SwingやAWTはイベント駆動で動作することは皆さんご存じのはずです。イベ