sleep() 方法的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行)。这个“正在执行的线程”是指 this.currentThread() 返回的线程。

例 1

下面通过一个案例来理解使用 sleep() 方法判断线程是否活动的标准。假设 MyThread10 线程类的代码如下:

package ch14;
public class MyThread10 extends Thread
{
@Override
public void run()
{
try
{
System.out.println("正在运行的线程名称:"+this.currentThread().getName()+" 开始");
Thread.sleep(2000); //延时2秒
System.out.println("正在运行的线程名称:"+this.currentThread().getName()+" 结束");
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
下面编写启动 MyThread10 线程的代码,具体实现如下: package ch14;
public class Test14
{
public static void main(String[] args)
{
MyThread11 mythread=new MyThread11();
System.out.println("主线程开始时间="+System.currentTimeMillis());
mythread.start();
System.out.println("主线程结束时间="+System.currentTimeMillis());
}
}

  

如上述代码所示,主线程创建一个 MyThread10 线程实例之后直接调用 run() 方法启动线程,整个过程都在主线程中完成。程序运行后的输出结果如下所示。

主线程开始时间=1540963362783
主线程结束时间=1540963362783
正在运行的线程名称:Thread-0 开始
正在运行的线程名称:Thread-0 结束

例 2

上个案例子线程中的延时导致主线程也进行了延时。下面再看一个 sleep() 方法应用的案例,这里使用的是 MyThread11 线程类,该类代码如下:

package ch14;
public class MyThread11 extends Thread
{
@Override
public void run()
{
try
{
System.out.println("正在运行的线程名称:"+this.currentThread().getName()+" 开始时间="+System.currentTimeMillis());
Thread.sleep(2000); //延时2秒
System.out.println("正在运行的线程名称:"+this.currentThread().getName()+" 结束时间="+System.currentTimeMillis());
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}

  

下面编写主线程的代码,在这里使用 start() 方法来启动 MyThread11 线程。具体代码如下:

package ch14;
public class Test14
{
public static void main(String[] args)
{
MyThread11 mythread=new MyThread11();
System.out.println("主线程开始时间="+System.currentTimeMillis());
mythread.start();
System.out.println("主线程结束时间="+System.currentTimeMillis());
}
}

  

此时运行程序将看到如下所示运行效果。

主线程开始时间=1540964257366
主线程结束时间=1540964257366
正在运行的线程名称:Thread-0 开始时间=1540964257366
正在运行的线程名称:Thread-0 结束时间=1540964259366

  

Java sleep方法的作用(sleep())的更多相关文章

  1. java final方法的作用

    1. 不想让别人修改方法实现. 2. 在方法调用时使用内嵌调用. 3. 有效的“关闭”动态绑定,这样编译器就可以为final方法调用生成更有效的代码. Java编程思想: “然而,大多数情况下,这样做 ...

  2. JAVA 注解的几大作用及使用方法详解

    JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...

  3. 自己(转)JAVA中toString方法的作用

    JAVA中toString方法的作用 因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.print ...

  4. 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用

    java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...

  5. java克隆对象clone()的使用方法和作用

    转自:997.html">http://www.okrs.cn/blog/news/?997.html 内容摘要 若需改动一个对象,同一时候不想改变调用者的对象.就要制作该对象的一个本 ...

  6. Java中finalize()方法的作用

    finalize方法是Object提供的的实例方法,使用规则如下: 当对象不再被任何对象引用时,GC会调用该对象的finalize()方法 finalize()是Object的方法,子类可以覆盖这个方 ...

  7. JAVA中String类的intern()方法的作用

    一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: public static void main(String[] args) t ...

  8. 几种任务调度的 Java 实现方法与比较

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

  9. Java中hashCode的作用

    转  http://blog.csdn.net/fenglibing/article/details/8905007 Java中hashCode的作用 2013-05-09 13:54 64351人阅 ...

随机推荐

  1. Django View类的解析

    class View(object): """ Intentionally simple parent class for all views. Only impleme ...

  2. 洛谷 - P2045 - 方格取数加强版 - 费用流

    原来这种题的解法是费用流. 从一个方格的左上走到右下,最多走k次,每个数最多拿走一次. 每次走动的流量设为1,起始点拆点成限制流量k. 每个点拆成两条路,一条路限制流量1,费用为价值相反数.另一条路无 ...

  3. hdoj5806【尺取】

    (补题,妈蛋那时候大哥给我说是尺取,我不想打-真是艾斯比了-) 题意: 退役狗 NanoApe 滚回去学文化课啦! 在数学课上,NanoApe 心痒痒又玩起了数列.他在纸上随便写了一个长度为 n 的数 ...

  4. lightoj 1025【区间DP】

    题意: 给出一个word,求有多少种方法你从这个word清除一些字符而达到一个回文串. 思路: 区间问题,还是区间DP: 我判断小的区间有多少,然后往外扩大一点. dp[i,j]就代表从i到j的方案数 ...

  5. python __builtins__ set类 (60)

    60.'set',  转换为集合类型 class set(object) | set() -> new empty set object | set(iterable) -> new se ...

  6. JVM的参数详解

    今天就整理下JVM的参数!相对而已JVM有很多参数,但对于一般开发人员执行知道和堆栈大小,GC.远程调试的参数即可. JVM Parameters 首先需要说明的是JVM的参数形式: -X 开头的参数 ...

  7. 调试的时候禁止chrome缓存图片

    https://blog.csdn.net/yiifaa/article/details/54290047 https://blog.csdn.net/xinghuo0007/article/deta ...

  8. vim normal 模式下L键

    vim normal 模式下L键总是到一行的最后一个字符,而不是最后一个字符的下一个字符,这样进入插入模式,就还得往右移动一下,就很费劲? 怎么解决 更新: a键进入插入即可

  9. Spring Boot中使用Swagger2构建RESTful APIs介绍

    1.添加相关依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <depen ...

  10. hbase表结构 + hbase集群架构及表存储机制

    本博文的主要内容有    .hbase读取数据过程 .HBase表结构 .附带PPT http://hbase.apache.org/ 读写的时候,就需要用hbase了,换句话说,就是读写的时候.需要 ...