`
mouer
  • 浏览: 101075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

线程中断.

    博客分类:
  • J2SE
阅读更多

昨天试了试线程中断...代码如下:

public class Main extends Thread {
	@Override
	public void run() {
		while(!this.isInterrupted()){
			System.out.println("the thread is run ...");
			try {
				TimeUnit.SECONDS.sleep(1L);
			} catch (InterruptedException e) {
				e.printStackTrace(); // 开始没打印信息,就写了个 ignore
			}
		}
	}
	public void goOn(){
		Main.interrupted();	
		if(!this.isInterrupted()){
			run();
		}
	}
	public static void main(String[] args) throws InterruptedException{
		Main td = new Main();
		System.out.println("``````````````````````````````````````");
		td.start();
		TimeUnit.SECONDS.sleep(2L);
		System.out.println("use interrupt()...");
		td.interrupt(); // ...不好用?
		TimeUnit.SECONDS.sleep(4L);
		System.out.println("use goOn()...");
		td.goOn();
	}
}

总是出现非预期结果.... 原因是错误信息没有打印.后来经论坛哥们提醒,看了下jdk,发现:如果线程在调用 Object 类的 wait()wait(long)wait(long, int) 方法,或者该类的 join()join(long)join(long, int)sleep(long)sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException

分享到:
评论

相关推荐

    多线程下载.rar

    三是错误处理和恢复机制,应对网络中断等问题;四是资源管理,避免过多线程导致系统资源浪费。 总结来说,这个压缩包提供的实例为我们展示了如何在VB环境中利用ActiveX组件实现多线程下载,通过学习源码,我们可以...

    SYSBIOS系统开发入门-7-2-线程-硬件中断.mp4

    SYSBIOS系统开发入门-7-2-线程-硬件中断.mp4 SYSBIOS系统开发入门-7-2-线程-硬件中断.mp4

    SYSBIOS系统开发入门-7-3-线程-软件中断.mp4

    SYSBIOS系统开发入门-7-3-线程-软件中断.mp4 SYSBIOS系统开发入门-7-3-线程-软件中断.mp4

    java线程1-10-720p版本

    最后,"10_一天学会线程_线程中断.mp4"可能深入介绍了`interrupt()`和`isInterrupted()`方法的使用,以及如何处理中断异常`InterruptedException`。线程中断是一种协作机制,当一个线程被中断时,其他线程可以通过...

    马士兵多线程笔记.zip

    9. **线程中断**:通过Thread.interrupt()方法可以请求中断一个线程,线程在运行过程中应定期检查中断标志,以便优雅地结束运行。 10. **线程间的通信**:Java的BlockingQueue接口和相关的类(如ArrayBlockingQueue...

    Java线程资料.pdf

    4. 线程中断和异常处理:文档提到了interrupted()方法,它可以用来判断当前线程是否已被中断。另外,sleep()方法可以让线程暂停执行指定的毫秒数,InterruptedException是当线程在休眠时被中断抛出的异常。 5. 线程...

    线程Demo.zip

    生命周期管理包括线程的启动、暂停、恢复、停止和中断等操作,需要注意的是,直接终止线程可能导致资源泄漏,因此通常建议使用interrupt()方法。 通过"线程Demo.zip"中的实例,读者可以动手实践,观察和分析多线程...

    java多线程例子.doc

    3. `sleep(long millis)`:使当前线程休眠指定的毫秒数,期间可能会被其他线程中断。 4. `getState()`:获取线程的状态,如NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED等。 5. `setPriority(int ...

    线程demo.rar

    线程一旦开始,会持续运行直到完成其工作或者被显式中断。你可以使用`Thread.Abort`方法终止线程,但这是不推荐的,因为可能会导致数据不一致和资源泄露。更好的做法是设置标志让线程自我检查并优雅地退出。 8. **...

    java多线程例子.pdf

    - interrupted()和isInterrupted():判断当前线程是否被中断,或者查询指定线程的中断状态。 7. 线程间通信: Java提供了wait(), notify(), notifyAll()方法来实现线程间的通信。这些方法作用于对象的监视器,...

    实验三 线程管理.docx

    * 通过操作系统自身的时钟中断,每次检测将ticks_blocked 减 1,如果减到 0 就唤醒线程。 四、blocked_thread_check 函数 * blocked_thread_check 函数用于检测线程的状态,如果ticks_blocked 减到 0 就唤醒线程。...

    人工智能-项目实践-多线程-断点续传与多线程下载.zip

    在IT领域,尤其是在移动开发和网络编程中,断点续传和多线程下载是两个重要的技术概念,尤其对于处理大文件的下载场景至关重要。在这个名为"人工智能-项目实践-多线程-断点续传与多线程下载.zip"的压缩包中,可能...

    Android多线程专题.pdf

    线程中断是Java提供的一个机制,通过调用Thread的interrupt()方法来设置中断标识位。但需要注意,这并不会立即停止线程,而是让线程自己检查中断标识位并决定是否结束。例如,通过一个循环检查Thread.currentThread...

    java,多线程实验.zip

    3. Lock接口与ReentrantLock类:提供比synchronized更灵活的锁机制,支持公平锁和非公平锁,以及可中断和定时等待的锁获取方式。 4. wait(), notify()和notifyAll():Object类的方法,用于线程间通信,必须在同步...

    易语言源码多文件多线程传送.rar

    4. **错误处理与进度显示**:在文件传输过程中,可能会遇到各种问题,如网络中断、文件不存在或权限不足等。因此,源码应包含适当的错误处理机制,以优雅地处理这些问题。同时,为了提高用户体验,通常会添加进度条...

    windows中断.zip

    "windows中断.zip"这个压缩包文件包含了有关Windows中断处理的详细信息,对于进行Windows编程的开发者来说尤其重要。 1. **中断的基本概念**: - 中断是计算机硬件向CPU发出的一种请求,用来通知CPU发生了某种事件...

    多线程J.U.C框架(完整)

    - **中断响应**:AQS能够处理线程的中断请求,确保在等待过程中线程可以被中断。 ##### 性能目标 - **稳定性与响应性**:AQS的设计重点在于确保在高并发情况下,系统能够稳定运行,并且对线程的请求能够快速响应。 ...

    java多线程试题.pdf

    11. `join()`方法使线程A等待线程B完成,`interrupt()`可以中断阻塞状态,`isAlive()`检查线程是否正在执行,而`currentThread()`获取当前线程引用,因此选项D错误。 12. 对象锁在同步块执行完或抛出异常时由持有它...

    C++11 线程的中断,继续以及停止

    C++11关于thead的应用,利用std::condition std::mutex提供如何中断,停止和继续功能,

    09.多线程编程基础-停止线程-使用interrupt方法中断线程.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

Global site tag (gtag.js) - Google Analytics