《Java多线程编程核心技术》——1.5节sleep()方法
本节书摘来自华章社区《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()方法相关推荐
- Java 多线程编程核心技术
课程介绍 多线程编程在最大限度利用计算资源.提高软件服务质量方面扮演着至关重要的角色,而掌握多线程编程也成为了广大开发人员所必须要具备的技能. 本课程以基本概念.原理方法为主线,每篇文章结合大量演示实 ...
- java多线程编程同步方法_实践【Java多线程编程核心技术】系列:同步方法造成的无限等待...
本文实践来自于[Java多线程编程核心技术]一书! 同步方法容易造成死循环,如-- 类Service.java: package service; public class Service { syn ...
- 《Java多线程编程核心技术》读书笔记
为什么80%的码农都做不了架构师?>>> <Java多线程编程核心技术>读书笔记. ###第一章 Java多线程技能 使用Java多线程两种方式. 继承Thread ...
- 《Java多线程编程核心技术》读后感(十一)
<Java多线程编程核心技术>读后感(十一) 方法join的使用 在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束.这时,如果主线 ...
- Java多线程编程核心技术-多线程基础使用
导语 想要学习一个新的技术就必须要无限的接近它,深入的了解它,了解一个东西的步骤就是由浅入深的去深入的了解它.下面这个专题博主会带着大家共同学习Java多线程的核心编程技术,从入门到深入,也欢迎大 ...
- 好读书不求甚解(一)Java多线程编程核心技术
第1章 Java多线程技能 第2章 对象及变量的并发访问 1 synchronized同步方法 2 synchronized同步代码块 3 volatile 第3章 线程间通信 1 等待通知机制 2 ...
- java多线程编程核心技术 pdf_Java多线程编程核心技术之volatile关键字
私信我或关注公众号猿来如此呀,回复:学习,获取免费学习资源包 volatile关键字 关键字volatile的主要作用是使变量在多个线程间可见. 1 关键字volatile与死循环 如果不是在多继承的 ...
- 《Java多线程编程核心技术》读后感(十四)
单例模式与多线程 立即加载/饿汉模式 立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化. 立即加载/饿汉模式实在调用方法前,实例已经被创建了 package Six;pu ...
- Java多线程编程核心技术 —— 拾遗增补
1.线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中. 线程状态,线程可以处于下列状态之一. NEW(new) 直接尚未启动的线程处于这种状态. RUNNABLE(runnab ...
最新文章
- 换血吃药改基因,硅谷富豪们想用钱收买死神丨视频
- @staticmethod 和@classmethod 方法
- Json解析不允许子类父类变量重名的原因
- Redis实战之征服 Redis + Jedis + Spring (三)
- Silverlight Training
- VTK:小部件之BoxWidget
- IE浏览器下DOM节点被替换后获取边界offsetParent / getBoundingClientRect 的BUG解决(版本 EXT 2.0/ 2.0.1)...
- java手写实现BST
- Android之判断时间戳是不是今天
- sap此项目以开票无关_大型公司财务共享中心RPA项目实例2则
- spring boot 创建第一个
- 云原生时代,消息中间件的演进路线 | 凌云时刻
- 【 HDU1081 】 To The Max (最大子矩阵和)
- 软件测试之 app性能测试的指标
- 长沙理工大学数据结构2013-2014学年二学期末数据结构期末考试试卷(B卷)
- 怎么把qq音乐flac改成mp3格式
- python列表元素提取_python提取list中的元素
- CentOS7.6的详细安装步骤
- 【搬家】【软件工具】BitBucket 初体验-安装与配置
- MATLAB数字水印设计