问答详情
源自:3-3 Java线程停止广为流传的错误方法---interrupt方法

为什么用为什么用if((System.currenttime - time)<1000)而不用sleep(1000)?

5:17的时候为什么用为什么用if((System.currenttime - time)<1000)而不用sleep(1000)?因为sleep(1000)指定是1000毫秒,而if((System.currenttime - time)<1000)可以是大于1000的其他数?因为sleep()可能会造成线程阻塞?

提问者:慕斯8597481 2016-07-13 14:55

个回答

  • 小娜子
    2016-07-13 22:28:58
    已采纳

    调用sleep()阻塞当前线程,当其他线程调用interrupt()的时候,sleep()会发生InterriptedException()中断异常,并清除中断状态。System.currenttime - time)<1000是if的判断条件,当这个值小于1000时进入if()代码块执行程序。