Javaのsleepとwaitの違いは何ですか。
- sleepはThreadクラスの静的メソッドであり、waitはObjectクラスのインスタンスメソッドです。
- sleepメソッドは、現在のスレッドを一定時間停止させますが、ロックは解放しません。一方、waitメソッドは、現在のスレッドを一時停止させ、ロックを解放します。
- sleepメソッドはsynchronizedブロックまたはメソッド内で使用する必要があり、一方、waitメソッドはsynchronizedブロック内で使用する必要があります。
- sleepメソッドは起こされる必要はなく、時間が来たら自動的に実行が再開されますが、waitメソッドはnotifyやnotifyAllを通じて起こされる必要があります。
- sleepメソッドはどこでも使用できますが、waitメソッドは同期ブロック内でのみ使用できます。