Thread.sleep()和Object.sleep()之间的区别

时间:2013-09-19 18:36:08

标签: java multithreading runnable thread-sleep

我有一个功能:

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);相同吗?

两个不同的电话之间有什么不同吗?

1 个答案:

答案 0 :(得分:8)

public static void sleep(long millis)
              throws InterruptedException
     

使当前正在执行的线程暂停(暂时停止执行)指定的毫秒数,具体取决于系统计时器和调度程序的精度和准确性。该线程不会失去任何监视器的所有权。

sleep()方法是静态的。应始终将其称为Thread.sleep()。写otherThread.sleep()使导致otherThread睡觉;它会导致当前线程进入休眠状态。