単一スレッドで sleep() を使用すると実行が停止する理由
Java では、イベント ディスパッチ スレッドとして知られる GUI 要素を処理するための別のスレッドが導入されています(EDT)。このスレッド内で sleep() を呼び出すと、両方のスレッドが実行を再開する前に完了を待つ状況が発生する可能性があります。
これは、ユーザー インターフェイス コンポーネントによって生成されたイベントを含む GUI イベントが EDT で処理されるために発生します。このスレッドで sleep() が呼び出されると、すべての保留中の GUI イベントが効果的に一時停止され、ユーザー インターフェイスがフリーズしたように見えます。ゲーム ロジックを担当するメイン スレッドも、sleep() 呼び出しが完了するまで停止します。
スレッドの停止を回避する
ユーザー インターフェイスのフリーズを防ぐため、EDT で Thread.sleep() を使用することは避けてください。代わりに、次のような他の方法を使用することを検討してください:
ベスト プラクティス
応答性の高いユーザー インターフェイスを確保するには、次のガイドライン:
以上がシングルスレッドで `sleep()` を使用すると Java GUI がフリーズするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。