A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在进行多线程编程时,sleep函数是不是可以停留任意的时间;InterruptedException e是什么异常?

4 个回复

倒序浏览
public static void sleep(long millis)
                  throws InterruptedException在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。该线程不丢失任何监视器的所属权。
public class InterruptedExceptionextends Exception当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。有时候,一种方法可能希望测试当前线程是否已被中断,如果已被中断,则立即抛出此异常。下列代码可以达到这种效果:

  if (Thread.interrupted())  // Clears interrupted status!
      throw new InterruptedException();
回复 使用道具 举报
按照我的理解你是不是想问为什么线程调用sleep()方法后还可以抛出InterruptedException????
如果是的话请修改你的问题,便于你的问题得到针对性的解决!
我直接回答你的问题,线程调用sleep()方法后可以指定任意时间,而你想让线程阻塞多久?一个世纪?
InterruptedException异常是线程中断异常.
回复 使用道具 举报
public static void sleep(long millis)
定义是这样的,所以只要你睡的不超过long定义的长度都可以,然后InterruptException是中断异常,就是说在线程等待过程中忽然中断要处理的异常,这个异常可以发生在sleep。wait等让线程等待的方法中,就像功夫片里面吧,sleep就像一个疗伤过程,如果一个人正在运气疗伤,你忽然一巴掌过去中断了他的疗伤,如果没有处理的话,他是不是有可能忽然真气逆流而死啊!!这个就是InterruptException异常,处理忽然中断当前状态出现的问题的异常!!

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
sleep函数可以自定义睡眠时间,而InterruptedException只会在你调用interrupt() 这个方法的时候才会发生。楼主肯定是还没看到多线程的后续部分视频,关于这个异常毕老师讲解的很详细的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马