sleep暂停线程
thread.sleep方法可以使当前线程暂停执行一段时间。通过该方式,可以有效地将处理器的可用时间分配给同一应用或者其他应用的线程。睡眠的方法也可以用于调整节奏(如上例所示),还可用于等待另一个被认为有时间要求的线程(后面的章节将有实例)。
sleep方法有两个重载版本:一个指定的睡眠时间是毫秒,一个指定的睡眠时间是纳秒。
sleep(long millis) 该线程睡眠时间 millis 毫秒
sleep(long millis, int nanos) 该线程睡眠时间 millis 毫秒 + nanos 纳秒
不过,这些睡眠时间不一定是精确的,因为它们还依赖于底层操作系统的能力。同时,睡眠可以被interrupt方法中断(我们将在后面的章节见到)。但在任何情况下,你都别指望调用sleep方法能在指定的精确时间暂停线程。
注意main方法中声明抛出中断异常(InterruptedException)。当一个线程睡眠时被别的线程中断,就会抛出该异常。这个应用程序中没有定义别的可能导致中断的线程,那它自然就捕获不到这个异常。
原文:
http://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html
相关推荐
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
### Java线程入门知识点详解 #### 一、Java线程基础知识概述 **1.1 什么是线程?** 线程是程序执行流的最小单元,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。在Java中...
需要注意的是,在调用`sleep()`方法时,线程不会释放它所持有的任何锁资源,这意味着如果当前线程持有一个对象的锁,则其他等待该锁的线程仍然会处于阻塞状态。 ##### 1.2 方法签名 ```java public static void ...
- **暂停线程**:可以使用`Thread.sleep(long millis)`方法让当前线程暂停一段时间。 - **中断线程**:通过调用线程的`interrupt()`方法来中断线程,线程可以通过检查是否被中断来决定是否继续执行。 - **加入线程**...
### Java线程详细总结 #### 一、Java线程简介 Java中的线程是一个轻量级的进程,它能够在一个程序中并发地执行多个任务。Java语言直接支持线程的概念,这使得Java成为多线程编程的理想选择。与进程相比,线程具有...
### Java线程的同步与死锁 #### 一、引言 在Java中,多线程编程是一项重要的技术,能够显著提升程序的性能和响应能力。然而,随着线程数量的增加,线程间的同步问题变得越来越复杂。本文将深入探讨Java线程中的同步...
### Java线程中断机制详解:`interrupt`与`stop`方法 #### 一、引言 在Java多线程编程中,线程控制是至关重要的技术之一。有时我们需要在特定条件下停止某个线程的执行,或者中断正在等待的线程。Java提供了多种...
### Java线程基础详解 #### 一、线程概述 **1.1 什么是线程?** 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。在Java中,线程是程序执行流的最小单元,一个标准的...
### Java并发中的线程安全性 #### 1. 引言 随着Java技术的发展以及多核处理器的普及,Java并发编程成为软件开发中的一个重要领域。Java并发控制问题是国内外学者研究的热点之一,特别是在J2SE 1.5版本中引入了`...
接着,分析了多线程机制的基本概念以及与进程的关系,并详细解释了JAVA线程的生命周期。在此基础上,通过一个具体的波形流动案例,展示了如何利用JAVA多线程机制来提高程序的并发性和执行效率。 #### 1. JAVA多线程...
### Java线程知识详解 #### 一、线程基础 **1.1 什么是线程?** 线程是操作系统能够进行运算调度的最小单位,它...通过本文的学习,你应该能够掌握Java线程的基本概念和使用方法,并能够开始编写简单的多线程程序。
### Java多线程并发技术的关键知识点 #### 一、线程的实现 Java中的多线程并发技术是基于`Thread`类实现的。线程的行为主要由线程体(即线程执行的具体逻辑)决定,而这个线程体通常是由`Thread`类的`run()`方法...
3. **调度策略**:Java线程调度支持不同优先级线程的抢占式调度,但并不直接支持相同优先级的时间片轮换调度。操作系统(如Windows XP)通常会提供时间片轮换的支持。 4. **创建和切换开销**:相比进程,线程的创建...
- **就绪 (Runnable):** 线程对象创建后,其他线程(例如初始线程)调用了该对象的`start()`方法。此时,该线程处于可运行的未运行状态。 - **运行 (Running):** 线程获得CPU使用权,正在执行中的状态。 - **阻塞 ...
为了实现交替打印,我们可以使用 `Thread.sleep()` 方法让线程暂停一段时间,但这并不能保证严格的交替打印。更可靠的方法是使用 `synchronized` 关键字和 `wait()` 与 `notifyAll()` 方法来控制线程间的同步。 ```...
- `sleep()`方法是`Thread`类的一部分,可以让调用线程进入睡眠状态,但不会释放对象锁。 - `wait()`方法是`Object`类的一部分,不仅会使线程进入等待状态,还会释放对象锁。这通常用于线程间的同步操作。 以上就是...
- 使用`Thread.sleep(long millis)`方法模拟延时效果,让线程每秒更新一次倒计时显示。 ##### 2.4 事件监听器 在GUI程序中,通常通过事件监听器来处理用户的交互行为,如点击按钮。本示例中,通过为`JButton`组件...
#### 一、Java线程堆栈分析 ##### 1.1 如何输出线程堆栈? **输出线程堆栈的方法**主要包括以下几种: 1. **命令行工具:** - `jstack`: 这是JDK自带的一个非常实用的命令行工具,可以用来查看Java进程中每个...
本项目旨在通过Java语言构建一个简单的摇奖机程序,利用多线程技术来实现三个数字的同时随机生成及显示功能。用户可以通过点击按钮来控制摇奖过程的开始与停止。 #### 二、核心组件介绍 该项目主要包括两个核心类...