开发者社区 问答 正文

关于线程的一个小细节 处理报错

      请问线程中,实现Runnable接口这个类中不是run方法体里面的Thread.sleep()这个方法,主线程调用这个方法时有效?

      我个人认为是无效的,不知道对不对。问下大家。

展开
收起
huc_逆天 2020-05-28 13:29:41 1237 分享 版权
阿里云 AI 助理回答

在Java中,Thread.sleep(long millis)方法是静态方法,它属于Thread类。当在任何线程中调用这个方法时,实际上都会使当前正在执行的线程暂停执行指定的毫秒数。这意味着,无论你是直接在主线程中调用它,还是在实现了Runnable接口的类的run方法中调用,或者是其他任何线程中调用,该方法都会影响到调用它的那个线程。

具体到您的问题,如果在实现了Runnable接口的类的方法体中(比如在run方法内)调用了Thread.sleep(),这将使得执行该run方法的线程(而非主线程或其他线程)暂停执行指定的时间。因此,如果你是在某个线程的上下文中执行了这个实现了Runnable接口的类的实例,并且在这个实例的run方法内部调用了Thread.sleep(),那么受到影响的是这个工作线程,而不是主线程。

总结来说,您的理解可能需要稍微调整一下:Thread.sleep()方法总是影响调用它的线程,不论这个调用发生在主线程还是其他任何线程中。所以,如果在Runnable实现类的run方法里调用它,效果是让执行这个run方法的线程休眠,而不是影响到主线程。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答标签:
问答地址: