English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wait())-スレッドはこの監視器の所有権を解放し、他のスレッドがオブジェクトの監視器上で待っているコールを通知するまで待ちます。notify()
メソッドまたはnotifyAll()
メソッドにより醒悟されたスレッド。その後、スレッドは待ち、監視器の所有権を再取得し、実行を再開するまで待ちます。
Sleep())-このメソッドは、現在実行中のスレッドが指定されたミリ秒数だけ休眠状態(一時的に実行を停止)に入ることを実行します。このスレッドは監視器の所有権を失うことはありません。指定された時間内に現在のスレッドを「実行不可」状態に送ります。
順序 | キー | 待ちます | 寝ます |
---|---|---|---|
1 | クラス | Wait()メソッドはObjectクラスに属しています | Sleep()メソッドはThreadクラスに属しています |
2 | ロック解放 | Wait()はオブジェクト上のロックを解放します | それはオブジェクトのロックを解放しません |
3 | 呼び出しコンテキスト | Wait()をオブジェクト自体で呼び出すことができます | Sleep()をスレッド上で呼び出すことができます |
4。 | 醒悟条件 | までnotify() 、notifyAll() オブジェクトから | 少なくとも時間が切れたり、コールが切断されるまで |
5 | 虚假の醒悟 | プログラムは虚假の醒悟が発生する可能性があります | 虚假の醒悟は発生しません |
synchronized(lockedObject){ while(condition == true){ lockedObject.wait() //lockedObjectのロックを解放します } Thread.sleep(100); //現在のスレッドをSleepに置きます }