有时候我们需要让线程在一段时间内不做任何事。例如某线程每个一小时检测一下传感器,剩余的时间不做任何事。

我们可以使用sleep()方法使线程睡眠,此期间不占用计算机资源。

这个方法接受一个整数表示睡眠的毫秒数。

睡眠结束后,JVM将从新分配其CPU时间。另一种睡眠方式是使用TimeUnit枚举元素的sleep()方法。

本例中,我们将开发一个程序,使用sleep()方法,实现每秒钟输出系统时间。

FileClock.java

package com.dylan.thread.ch1.c05;

import java.util.Date;

import java.util.concurrent.TimeUnit;

/**

* @author xusucheng

* @create 2018-04-13

**/

public class FileClock implements Runnable {

@Override

public void run() {

for (int i = 0; i < 10; i++) {

System.out.printf("%s\n", new Date());

try {

TimeUnit.SECONDS.sleep(1);

} catch (InterruptedException e) {

System.out.printf("The FileClock has been interrupted");

}

}

}

}

Main.java

package com.dylan.thread.ch1.c05;

import java.util.concurrent.TimeUnit;

/**

* @author xusucheng

* @create 2018-04-24

**/

public class Main {

public static void main(String[] args) {

FileClock clock=new FileClock();

Thread thread=new Thread(clock);

thread.start();

try {

TimeUnit.SECONDS.sleep(5);

} catch (InterruptedException e) {

e.printStackTrace();

}

thread.interrupt();

}

}

输出:

Tue Apr 24 23:27:30 CST 2018Tue Apr 24 23:27:32 CST 2018Tue Apr 24 23:27:33 CST 2018Tue Apr 24 23:27:34 CST 2018Tue Apr 24 23:27:35 CST 2018The FileClock has been interruptedTue Apr 24 23:27:35 CST 2018Tue Apr 24 23:27:36 CST 2018Tue Apr 24 23:27:37 CST 2018Tue Apr 24 23:27:38 CST 2018Tue Apr 24 23:27:39 CST 2018

java 5 线程 睡眠,Java并发编程实例--5.线程睡眠相关推荐

  1. python线程唤醒_Python 并发编程(一)之线程

    常用用法 t.is_alive() Python中线程会在一个单独的系统级别线程中执行(比如一个POSIX线程或者一个Windows线程) 这些线程将由操作系统来全权管理.线程一旦启动,将独立执行直到 ...

  2. Java并发编程 synchronized保证线程安全的原理

    文章转载致博客 blog.csdn.net/javazejian/- 自己稍加完善. 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源 ...

  3. java 并发编程实例_Java并发编程案例解读

    经过前面几节的学习,了解了多线程概念.Thread类的应用.多线程数据同步存在的问题及解决方法.本节给出一个并发编程实例应用案例,通过案例的学习,可以灵活地把多线程知识应用到实际编程中,解决在项目开发 ...

  4. java并发编程实践(2)线程安全性

    [0]README 0.0)本文部分文字描述转自:"java并发编程实战", 旨在学习"java并发编程实践(2)线程安全性" 的相关知识: 0.1)几个术语( ...

  5. java并发编程第一课 线程的创建、停止和状态变更

    开篇词: 由点及面,搭建你的 Java 并发知识网 你好,欢迎学习<Java 并发编程核心 78 讲>,我是讲师星星,一线互联网公司资深研发工程师,参与过集团内多个重点项目的设计与开发. ...

  6. 网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)

    文章目录 第一章 多线程并发编程 第二节 线程安全问题 1.2.1 线程安全之可见性问题 多线程中的问题 从内存结构到内存模型 工作内存缓存 指令重排序 内存模型的含义 Shared Variable ...

  7. synchronized原理_Java并发编程 -- synchronized保证线程安全的原理

    线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据.因此为了解决这个问题,我们可能需要这样一个方案, ...

  8. 通过ThreadPoolExecutor与ForkJoinPool比较,分别对比其execute ,submit 等方法提交线程池任务的区别,来深入理解线程池及并发编程

    前言 以前使用线程池,对execute . submit 等方法提交线程池任务的区别比较模糊,现在通过ThreadPoolExecutor与ForkJoinPool比较,分别对比其execute ,s ...

  9. Python并发编程实例教程

    有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库. 一.简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态 ...

最新文章

  1. 为什么静态方法无法直接调用非静态成员变量和方法
  2. KeeperErrorCode = Unimplemented for /test
  3. lua_path环境变量设置linux,ubuntu16.04安装lua环境
  4. python的等待代码是什么_Python selenium 三种等待方式详解
  5. 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
  6. 火狐无法安装扩展_立即安装4个Firefox扩展
  7. 电压、电流检测方法介绍
  8. 小米9pro计算机打不开,小米9 Pro刷机教程,线刷升级更新官方系统包
  9. Windows批处理文件bat学习(一)
  10. swing-组件Collapse折叠面板2
  11. 第八届北京国际电影节开幕 首次发布中国电影大数据
  12. 产品日记(二)一些愚见, 记录在此
  13. uiautomator2+adb shell input tap 实现微博自动取消关注
  14. shp文件转换到CAD dwg,dxf
  15. 链表的头插法和尾插法——头插尾插交替插入
  16. 数字藏品以虚强实,赋能实体经济发展
  17. 乐观锁和悲观锁区别以及使用场景
  18. c 语言程序设计形考4,国开学习网电大C语言程序设计形考任务4答案
  19. 前端框架AdminLTE
  20. 史上最全因果推断合集-10(滴滴的国际化外卖团队智能补贴实战)

热门文章

  1. python中返回值为ture表达式_python return逻辑判断表达式(21)|python教程|python入门|python教程...
  2. python系统提供构造函数传入参数_python类变量与构造函数的使用
  3. deepin安装mysql失败_deepin20无法安装mysql
  4. 如何设置mysql让其他人能访问_怎么设置MySQL就能让别人访问本机的数据库了?...
  5. mysql 隔行记录_php mysql数据输出实现隔行变色的简单示例
  6. matlab和python的语言_四大机器学习编程语言对比:R、Python、MATLAB、Octave
  7. 计算机原理语言方框图,计算机原理整理原版1.10.docx
  8. python cookbook 小结
  9. TabTopUnderLineLayout【自定义顶部选项卡(带下划线)】
  10. oracle DB_LINK