1、让一个线程sleep有两种方法,一个是直接调用Thread.sleep(),另一个是使用枚举类型 java.util.concurrent.TimeUnit的枚举常量。
Clock.java
<!---->package sleep;
import static java.util.concurrent.TimeUnit.SECONDS; // utility class
public class Clock extends Thread
{
// This field is volatile because two different threads may access it
volatile boolean keepRunning = true;
public Clock()
{ // The constructor
setDaemon(true); // Daemon thread: interpreter can exit while it runs
}
public void run()
{ // The body of the thread
while (keepRunning)
{ // This thread runs until asked to stop
long now = System.currentTimeMillis(); // Get current time
System.out.printf("%tr%n", now); // Print it out
try
{
Thread.sleep(1000);
} // Wait 1000 milliseconds
catch (InterruptedException e)
{
return;
}// Quit on interrupt
}
}
// Ask the thread to stop running. An alternative to interrupt().
public void pleaseStop()
{
keepRunning = false;
}
// This method demonstrates how to use the Clock class
public static void main(String[] args)
{
Clock c = new Clock(); // Create a Clock thread
c.start(); // Start it
try
{
SECONDS.sleep(10);
} // Wait 10 seconds
catch (InterruptedException ignore)
{
} // Ignore interrupts
// Now stop the clock thread. We could also use c.interrupt()
c.pleaseStop();
}
}
2、守护进程daemon thread:
- Java 线程有两种类型,分别是 daemon thread 和 user thread
- daemon thread 的存在就是为了服务 user thread, 所以当JVM中所有的user thread线程都已经执行完毕时,JVM即将推出,因为此时 JVM 中剩下的 daemon 线程已经没有存在的必要了。
- 任何线程都可以是一个user thread 或者一个 daemon线程。可以调用方法 setDaemon(boolean isDaemon)来改变线程类型。需要注意的是,调用任何线程的该方法必须在该线程被start之前(例如在构造方法中),如果在线程running的时候调用该方法则会引发异常。
- 默认情况下,daemon thread 创建的线程是一个 daemon thread, user thread 创建的 thread是user thread。
3、
分享到:
相关推荐
JavaThread
2. 分析 Thread Dump,找到导致 CPU 高的线程 3. 分析线程的状态、锁信息、死锁信息等 4. 根据分析结果,定位性能瓶颈 在分析 Thread Dump 时,可以使用一些工具,例如 `jvis`、`VisualVM` 等。这些工具可以帮助...
### Java Thread用法详解 #### 一、Java线程基础概念与重要性 在Java编程语言中,线程是程序执行的基本单位之一,它能够帮助我们实现多任务处理,提高程序运行效率。Java中的线程主要通过`java.lang.Thread`类来...
Java线程分析工具(TDA)是一款专为Java开发者设计的强大工具,用于解析和理解Java应用程序的线程转储(thread dump)。线程转储是Java虚拟机(JVM)在特定时刻生成的一种快照,其中包含了应用程序中所有活动线程的状态...
本资料“Java Thread Programming”由Paul Hyde提供,包含了关于Java线程编程的理论知识和实践代码,旨在帮助开发者深入理解和熟练掌握Java线程。 首先,我们来了解一下Java中线程的基本概念。在Java中,可以通过两...
为保证不会出现卖出同一个票数,要java多线程同步锁。 设计思路:1.创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作!售票要使用同步锁:即有一个站台卖这张票时,其他站台要等这张票卖...
2. **线程池支持**:可能扩展了`java.util.concurrent.ExecutorService`接口,使得线程池中的线程也可以根据策略绑定到特定的核心。 3. **平台兼容性**:考虑到跨平台兼容性,该项目可能实现了对Linux、Windows、...
java 應用 thread 的小程式 計算 time 的
本示例"java_thread_demo"很可能是关于Java线程编程的一个实例项目,其中可能包含了创建、管理及同步线程的各种方法。 在Java中,线程可以通过两种方式创建:继承Thread类或者实现Runnable接口。继承Thread类时,你...
Java Thread Dump Analyzing
在Java编程语言中,线程(Thread)是执行单元,它允许程序同时执行多个任务。在"JAVA thread"这个主题中,我们主要关注的是如何在Java中创建和管理线程,以及如何通过线程实现并发执行,就像"龟兔赛跑"这个小游戏所...
Java Thread在JVM中的实现与理解 Java Thread是Java编程语言中处理并发执行的基本单元,它在Java虚拟机(JVM)中有着重要的地位。本文将深入探讨Java Thread的语法特性以及其在JVM内部的编译结果,帮助开发者更好地...
"Java Threads,2ed Edition.pdf"是第二版的线程指南,虽然版本较旧,但依然包含了基础的线程知识,对于理解Java线程的基本原理和早期版本的特性非常有帮助。书中可能探讨了Java早期的线程模型,以及如何在多线程环境...
本资源“Java Thread Programming (Sams)”提供了详细的线程编程知识,结合了理论与实际代码,旨在帮助开发者深入理解并熟练掌握Java线程。 1. **线程概念** - 线程是操作系统调度的基本单位,一个进程可以包含多...
各种 Java Thread State 第一分析法则
2. **理解Thread状态** - **NEW**:新创建但尚未启动的线程。 - **RUNNABLE**:线程正在执行Java代码。 - **BLOCKED**:线程在等待监视器锁。 - **WAITING**:线程在等待另一个线程执行特定操作,没有超时时间。...