这问题也是很常见的问题,自打 stop不推荐使用后,我们还有别的可以选择的方法吗?
设置一个标志,让其自动return最安全。
1. /**
2. * JAVA里面如何使用一个线程死亡或结束.
3. * @author 赵学庆,Java世纪网(java2000.net)
4. *
5. */
6. public class T {
7. public static void main(String[] args) {
8. // 启动线程
9. MyThread thread = new MyThread();
10. new Thread(thread).start();
11.
12. // 你的其它的工作,此时线程在运行中
13.
14. // 你不想让线程干活了,停掉它
15. // 注意,这只是一个标志,具体线程何时停,并不能精确控制
16. thread.allDone = true;
17.
18. }
19.
20. }
21.
22. class MyThread implements Runnable {
23. boolean allDone = false;
24.
25. public void run() {
26. // 每次循环都检测标志
27. // 如果设置停止标志时已经在循环里
28. // 则最长需要等待一个循环的时间才能终止
29. while (!allDone) {
30. // 循环里的工作
31. }
32. }
33. }
分享到:
相关推荐
线程联合(Join)是让一个线程等待另一个线程完成后再继续执行,通过调用`join()`方法实现。 9.11 守护线程: 守护线程(Daemon)是一种不阻止程序退出的线程,如垃圾收集器就是守护线程。当所有非守护线程结束时,...
Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
- **死亡状态(Terminated)**:线程执行结束或因异常而终止的状态。 ### 给定代码示例解析 #### 代码解读 ```java try { System.out.println("线程开始运行"); Thread.sleep(10000); // 模拟线程睡眠10秒 ...
Java线程是多线程编程的核心概念,是Java语言中实现并发执行的机制。线程安全和同步线程是确保在多线程环境下正确执行的关键因素。线程安全指的是一个方法或类在多线程环境下可以正确无误地运行,不会因为线程之间的...
Java多线程机制是编程中一个重要的概念,它允许程序同时执行多个任务,提升程序的效率和响应性。在Java中,线程是程序执行的基本单元,比进程更细粒度,一个进程可以包含多个线程。每个线程有自己的生命周期,包括...
线程死亡的原因有两个:一是正常运行的线程完成了它的全部工作,即执行完了`run()`方法的最后一个语句并退出;二是线程被提前强制性地终止,如通过执行`stop()`方法或`destroy()`终止线程。 #### 四、多线程的基本...
- `notify()`随机唤醒一个在目标对象上等待的线程,而`notifyAll()`会唤醒所有等待的线程。唤醒的线程需要竞争锁资源,只有获得锁的线程才能继续执行。 2. **suspend()和resume()**: - 这两个方法在早期的Java...
- **线程**:是进程中的一个执行流,一个进程中可以包含一个或多个线程,每个线程都是一条执行路径。 **进程与线程的区别** - 每个进程都有独立的代码和数据空间,而同一进程内的所有线程共享代码和数据空间。 - ...
Java线程具有创建、就绪、运行、阻塞和死亡五种状态。创建状态是指用new操作创建了一个Thread实例,但尚未调用start()方法;就绪状态是指线程可以运行,但CPU还未分配时间片;运行状态是指线程获得CPU时间片,正在...
- `Object.wait()`: 使当前线程等待,直到另一个线程调用此对象上的`notify()`或`notifyAll()`方法,或等待时间超时。 - `Object.notify()`: 唤醒在此对象监视器上等待的单个线程。 - `Object.notifyAll()`: 唤醒...
Java提供了多种控制线程的方法,如start()启动线程,run()执行线程任务,sleep()让线程暂时休眠,join()等待其他线程结束,yield()让当前线程暂停,让其他线程有机会运行,以及设置优先级等。 并发控制是多线程编程...
Java线程具有优先级,`Thread.NORM_PRIORITY`是默认优先级,可以通过`setPriority()`设置优先级。但优先级并不保证线程的执行顺序,因为线程调度取决于JVM和操作系统。 6. **线程池** Java的`ExecutorService`和`...
每个线程都应该有自己的`try-catch`块,确保即使一个线程出错,其他线程也能继续运行。 8. **Applet的生命周期**:Applet有初始化、启动、绘画、停止和销毁等阶段,开发者需要了解每个阶段何时触发以及如何编写相应...
在Java中,线程是程序执行的最小单位,一个进程可以包含多个线程,每个线程都有自己独立的生命周期,包括产生、存在和消亡。 线程与进程的区别在于,程序是静态的代码,而进程是程序的动态执行实例,线程则是进程...
5. 死亡状态(Dead):线程的run()方法执行完毕或因异常退出,线程生命周期结束。 创建Java多线程主要有以下两种方式: 1. 继承Thread类:创建一个新的类MyThread继承自Thread类,重写run()方法。在main方法中,...
《Java线程(第三版)》是一本深入探讨Java线程技术的专业书籍,旨在帮助开发者理解和掌握Java平台上的多线程编程。Java线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而充分利用系统资源,提高程序的...
在 JAVA 中,线程是一个独立的执行单元,它可以独立地执行任务。线程具有自己的程序计数器、寄存器和堆栈。线程可以共享同一个进程的内存空间和系统资源。 线程的生命周期 线程的生命周期包括创建、可运行、运行、...
1. **synchronized** 关键字:可以修饰方法或代码块,确保同一时刻只有一个线程执行该代码。 2. **volatile** 关键字:确保多个线程对共享变量的修改是可见的,但不保证原子性。 3. **Lock** 和 **ReentrantLock**:...
- Java线程有五种状态:新建、就绪、运行、阻塞和死亡。线程的状态可以通过Thread对象的`getState()`方法查询,或者查看JDK11及更高版本的`Thread.status`常量。 5. 线程同步: - 为了处理线程安全问题,Java提供...
### Java线程教程知识点梳理 #### 一、教程概述 - **目标读者**: 本教程主要面向具备丰富Java基础知识但缺乏多线程编程经验的学习者。 - **学习成果**: 学习者能够掌握编写简单的多线程程序的能力,并能够理解和...