2

私は機能を持っています:

Thread myThread = new Thread(new Runnable() {
    @Override
    public void run() {
        while (true) {
            try {
                Thread.sleep(500);
                myThread.sleep(500);
            } catch (InterruptedException e) {
               e.printStackTrace();
            }
        }
    }
});

呼び出しは呼び出しThread.sleep(500);と同じmyThread.sleep(500);ですか?

2 つの異なる呼び出しに違いはありますか?

4

1 に答える 1

9
public static void sleep(long millis)
              throws InterruptedException

現在実行中のスレッドを、指定されたミリ秒数だけスリープ (一時的に実行を停止) させます。これは、システム タイマーとスケジューラの精度と正確さに従います。スレッドは、どのモニターの所有権も失いません。

sleep() メソッドは静的です。常に として呼び出す必要がありますThread.sleep()。書くことで眠ることはありotherThread.sleep()ません。現在のスレッドをスリープさせますotherThread

于 2013-09-19T18:38:50.923 に答える