本节书摘来自华章社区《Java多线程编程核心技术》一书中的第1章,第1.5节sleep()方法,作者高洪岩,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.5 sleep()方法
方法sleep()的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行)。这个“正在执行的线程”是指this.currentThread()返回的线程。
通过一个示例进行说明。创建项目t8,类MyThread1.java代码如下:

public class MyThread1 extends Thread {@Overridepublic void run() {try {System.out.println("run threadName="+ this.currentThread().getName() + " begin");Thread.sleep(2000);System.out.println("run threadName="+ this.currentThread().getName() + " end");} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
运行类Run1.java代码如下:
public class Run1 {public static void main(String[] args) {MyThread1 mythread = new MyThread1();System.out.println("begin =" + System.currentTimeMillis());mythread.run();System.out.println("end   =" + System.currentTimeMillis());}
}
直接调用run()方法,程序运行结果如图1-25所示。
继续实验,创建MyThread2.java代码如下:
public class MyThread2 extends Thread {@Overridepublic void run() {try {System.out.println("run threadName="+ this.currentThread().getName() + " begin ="+ System.currentTimeMillis());Thread.sleep(2000);System.out.println("run threadName="+ this.currentThread().getName() + " end   ="+ System.currentTimeMillis());} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
创建Run2.java代码如下:
public class Run2 {public static void main(String[] args) {MyThread2 mythread = new MyThread2();System.out.println("begin =" + System.currentTimeMillis());mythread.start();System.out.println("end   =" + System.currentTimeMillis());}
}

使用start()方法启动线程,程序运行结果如图1-26所示。


由于main线程与MyThread2线程是异步执行的,所以首先打印的信息为begin和end。而MyThread2线程是随后运行的,在最后两行打印run begin和run end相关的信息。

《Java多线程编程核心技术》——1.5节sleep()方法相关推荐

  1. Java 多线程编程核心技术

    课程介绍 多线程编程在最大限度利用计算资源.提高软件服务质量方面扮演着至关重要的角色,而掌握多线程编程也成为了广大开发人员所必须要具备的技能. 本课程以基本概念.原理方法为主线,每篇文章结合大量演示实 ...

  2. java多线程编程同步方法_实践【Java多线程编程核心技术】系列:同步方法造成的无限等待...

    本文实践来自于[Java多线程编程核心技术]一书! 同步方法容易造成死循环,如-- 类Service.java: package service; public class Service { syn ...

  3. 《Java多线程编程核心技术》读书笔记

    为什么80%的码农都做不了架构师?>>>    <Java多线程编程核心技术>读书笔记. ###第一章 Java多线程技能 使用Java多线程两种方式. 继承Thread ...

  4. 《Java多线程编程核心技术》读后感(十一)

    <Java多线程编程核心技术>读后感(十一) 方法join的使用 在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束.这时,如果主线 ...

  5. Java多线程编程核心技术-多线程基础使用

    导语   想要学习一个新的技术就必须要无限的接近它,深入的了解它,了解一个东西的步骤就是由浅入深的去深入的了解它.下面这个专题博主会带着大家共同学习Java多线程的核心编程技术,从入门到深入,也欢迎大 ...

  6. 好读书不求甚解(一)Java多线程编程核心技术

    第1章 Java多线程技能 第2章 对象及变量的并发访问 1 synchronized同步方法 2 synchronized同步代码块 3 volatile 第3章 线程间通信 1 等待通知机制 2 ...

  7. java多线程编程核心技术 pdf_Java多线程编程核心技术之volatile关键字

    私信我或关注公众号猿来如此呀,回复:学习,获取免费学习资源包 volatile关键字 关键字volatile的主要作用是使变量在多个线程间可见. 1 关键字volatile与死循环 如果不是在多继承的 ...

  8. 《Java多线程编程核心技术》读后感(十四)

    单例模式与多线程 立即加载/饿汉模式 立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化. 立即加载/饿汉模式实在调用方法前,实例已经被创建了 package Six;pu ...

  9. Java多线程编程核心技术 —— 拾遗增补

    1.线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中. 线程状态,线程可以处于下列状态之一. NEW(new) 直接尚未启动的线程处于这种状态. RUNNABLE(runnab ...

最新文章

  1. 换血吃药改基因,硅谷富豪们想用钱收买死神丨视频
  2. @staticmethod 和@classmethod 方法
  3. Json解析不允许子类父类变量重名的原因
  4. Redis实战之征服 Redis + Jedis + Spring (三)
  5. Silverlight Training
  6. VTK:小部件之BoxWidget
  7. IE浏览器下DOM节点被替换后获取边界offsetParent / getBoundingClientRect 的BUG解决(版本 EXT 2.0/ 2.0.1)...
  8. java手写实现BST
  9. Android之判断时间戳是不是今天
  10. sap此项目以开票无关_大型公司财务共享中心RPA项目实例2则
  11. spring boot 创建第一个
  12. 云原生时代,消息中间件的演进路线 | 凌云时刻
  13. 【 HDU1081 】 To The Max (最大子矩阵和)
  14. 软件测试之 app性能测试的指标
  15. 长沙理工大学数据结构2013-2014学年二学期末数据结构期末考试试卷(B卷)
  16. 怎么把qq音乐flac改成mp3格式
  17. python列表元素提取_python提取list中的元素
  18. CentOS7.6的详细安装步骤
  19. 【搬家】【软件工具】BitBucket 初体验-安装与配置
  20. MATLAB数字水印设计

热门文章

  1. 【图】max51开发板top页
  2. Java程序设计实验2
  3. linux之man命令
  4. 延禧宫有刺客!快把他收了!
  5. MIT研制出空陆自动切换型无人机技术,构想多年的“飞行车”或将实
  6. java常用序列化与反序列化方法
  7. fedora下一些问题的解决方案汇总
  8. HNOI2004 郁闷的出纳员(Splay)
  9. CactiEZ中文版10.1与CAS单点登录
  10. 【iOS开发】代理(delegate)