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. Eclipse安装配置Maven

    Eclipse安装配置Maven 1 安装配置Maven 1.1 下载Maven 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven.   ...

  2. Cardboard对像的公共方法与属性

    一.  public Pose3D EyePose(Eye eye)/// The transformation from head to eye. 获取眼睛在头部坐标系中的局部transform: ...

  3. ecb-2.40与cedet-1.1的兼容(转载)

    转自:http://blog.csdn.net/cnsword/article/details/7474119 今天凑热闹把fedora升级到了17,emacs升级到了24,但是悲剧了,显示cedet ...

  4. input required字段;django input输入框不填写会自动变红如何修改

    前端页面中,input不输入任何内容时,点击submit时,未填写的input会标红框,有些人还会有"该字段必填的字样"!! 什么鬼,你妹的,js也见不到,css3动画也见不到,怎 ...

  5. 博客图片失效?使用npm工具一次下载/替换所有失效的外链图片

    前言 大约一个月前,微博的图片外链失效了,以及掘金因为盗链问题也于2019/06/06决定开启防盗链,造成的影响是:个人博客网站的引用了这些图片外链都不能显示. 目前微博和掘金的屏蔽,在CSDN和se ...

  6. (水题)Codeforces - 650A - Watchmen

    http://codeforces.com/contest/650/problem/A 一开始想了很久都没有考虑到重复点的影响,解欧拉距离和曼哈顿距离相等可以得到 $x_i=x_j$ 或 $y_i=y ...

  7. IT兄弟连 Java Web教程 经典面试题2

    1.Servlet的工作流程? Servlet是运行在Servlet容器中的,由Servlet容器来负责Servlet实例的查找.创建以及整个生命周期的管理,Servlet整个生命周期可以分为四个阶段 ...

  8. TensorFlow多线程输入数据处理框架(二)——输入文件队列

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 一个简单的程序来生成样例数据. #!/usr/bin/env python # -*- coding: UTF-8 ...

  9. Java反编译工具-JD-GUI

    Java是跨平台的,JD-GUI提供了多个系统的支持,但是不建议直接安装,最快的方式推荐直接下载JAR包,然后用java -jar进行运行. 就现在的版本是1.4.0,停留在2015年,估计近期会更新 ...

  10. visual studio各版本下载

    软件包括以下几种: cn_visual_studio_2010_ultimate_x86_dvd_532347.part1.rar cn_visual_studio_2010_ultimate_x86 ...