您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多线程 sleep方法响应中断 & sleep面试问题(与wait/notify的比较)

java持续实践 发布时间:2020-08-30 11:20:08 ,浏览量:1

文章目录
      • sleep方法响应中断
      • 使用TimeUnit.SECONDS.sleep()方法的好处
      • 对于sleep的总结
      • sleep面试问题

sleep方法响应中断

sleep方法响应中断 的时候, 会做两件事情,

  1. 抛出InterruptedException
  2. 清除中断状态.

如下的代码, 演示了线程在sleep的过程中, 被中断的情况. 子线程每隔一秒打印当前的时间, 循环10次, 会执行10s.

主线程在其第六秒的时候, 让子线程休眠. 此时子线程抛出被中断的异常.

import java.util.Date;
import java.util.concurrent.TimeUnit;

/**
 * 类名称:SleepInterrupted
 * 类描述:TODO
 *
 * @author: https://javaweixin6.blog.csdn.net/
 * 创建时间:2020/8/30 10:51
 * Version 1.0
 */
public class SleepInterrupted implements Runnable {
    public static void main(String[] args) {
        Thread thread = new Thread(new SleepInterrupted());
        thread.start();

        //让子线程运行6s后, 让其中断
        try {
            Thread.sleep(6000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        thread.interrupt();
    }


    @Override
    public void run() {
        for (int i = 0; i             
关注
打赏
1658054974
查看更多评论
0.0422s