`
哈达f
  • 浏览: 120338 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

中断线程

    博客分类:
  • j2se
阅读更多

/*
停止线程的方式一:
定义结束标记。
因为线程在run方法中运行。只要允许代码结束,线程即可停止。
而run方法中通常会定义循环,只要控制住循环即可。
方式二:
当线程进入到了冻结状态,不能读到结束标记时,
可以通过interrupt()方法,将冻结状态强制清除。
让线程恢复到运行状态中来。就可以读取结束标记。

*/
class StopThread implements Runnable
{
	private boolean b = true;
	public synchronized void run()
	{

		System.out.println(Thread.currentThread().getName()+" come in");
		while(b)
		{
			try
			{
				wait();
			}
			catch (InterruptedException e)
			{
				System.out.println(Thread.currentThread().getName()+".....exception");
				b = false;

			}
			System.out.println(Thread.currentThread().getName());
			
		}
	}
	public void setFlag()
	{
		b = false;
	}
}
class  StopThreadDemo
{
	public static void main(String[] args) 
	{
		StopThread st = new StopThread();

		Thread t1 = new Thread(st);
		Thread t2 = new Thread(st);

		t1.start();
		t2.start();

		int num = 0;

		while(true)
		{
			if(num++==60)
			{
//				st.setFlag();
				t1.interrupt();
				t2.interrupt();
				break;
			}
			System.out.println(Thread.currentThread().getName()+"..."+num);
		}
		System.out.println("over");
	}
}
 
分享到:
评论

相关推荐

    linux的中断线程化实现[借鉴].pdf

    在Linux操作系统中,中断线程化是一种将中断处理与用户空间任务解耦合的技术,它允许中断处理程序在后台执行,从而改善系统响应时间和资源管理。2.6.25.8内核版本引入了这一特性,使得中断处理更加灵活且高效。 ...

    Java 实例 - 中断线程源代码+详细指导教程.zip

    在Java编程中,中断线程是一项重要的任务,它允许程序在必要的时候停止或者结束一个正在运行的线程。本教程的压缩包包含了中断线程的源代码实例和详细指导,旨在帮助开发者深入理解和掌握这一核心概念。以下是关于...

    java中断线程的正确姿势完整示例.rar

    在Java编程中,中断线程是一项重要的任务,特别是在多线程环境下,我们可能需要停止某个线程的执行,以优化程序资源的使用或响应特定的系统需求。本示例将详细探讨Java中断线程的正确方法,以确保线程安全且高效地...

    Java基本功之中断线程的理解[参考].pdf

    以下是对Java中断线程的详细解释: 1. **线程终止条件**: - 当`run`方法执行完毕。 - `return`语句执行,提前结束`run`方法。 - 出现未捕获的异常,导致`run`方法终止。 2. **`stop`方法的弃用**: Java早期...

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

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

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

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

    Java多线程之中断线程(Interrupt)的使用详解

    `Thread.interrupt()`方法是中断线程的主要手段,但它的行为并不像字面意义上那样直接终止线程。相反,它通过设置线程的中断状态来向线程发送一个中断信号,这个信号是一个内部标志,告知线程应该停止其当前的工作。...

    Android中断线程的处理方法

    中断线程的处理是确保应用响应性和用户体验的关键。本篇将详细讲解如何在Android中正确地中断线程,以及处理中断后的工作。 首先,Android中的线程中断主要是通过`Thread.interrupted()`或`Thread.currentThread()....

    Java中断线程的方法

    在Java中,中断线程主要是通过调用`Thread`对象的`interrupt()`方法来实现的。这个方法并不会立即停止目标线程,而是设置一个中断标志,表明线程已被请求中断。如果线程处于阻塞状态(例如在`sleep()`, `wait()`, ...

    中断线程处理程序-项目开发

    "中断线程处理程序-项目开发"是一个专注于解决线程中断问题的方案,它提供了不同于传统方法(如使用`yield()`或`delay(ms)`)的线程切换机制,并且不依赖预分配的堆栈。 传统的多线程编程中,`yield()`函数用于让...

    java通过线程控制程序执行超时(新)

    // 超时后中断线程 } ``` 基本数据类型在超时控制中主要体现在计算或比较操作上,例如,我们可以用long类型的变量记录开始时间,然后在超时检查时与当前时间进行比较。反射则允许我们在运行时动态获取类、方法和...

    java多线程Demo

    - interrupt()方法用于中断线程,如果线程正在阻塞(如sleep或wait),会被中断并抛出InterruptedException。 通过这些技术,我们可以构建高效、稳定、响应迅速的多线程应用程序。在实际开发中,应根据具体需求...

    l4 的中断处理详解

    如果handler thread的状态不是`waiting`,中断线程的消息寄存器会被设置,伙伴设置为handler thread,状态改为`polling`,然后将中断线程放入handler thread的发送列表。 在L4中,中断线程(irq thread)、当前运行...

    java线程中断之interrupt和stop.docx

    `interrupt`方法是一种更安全的方式,它通过改变线程的状态来中断线程,而不会直接结束线程的生命。相比之下,`stop`方法虽然可以直接终止线程,但由于其可能导致的问题,不推荐使用。在实际开发中,建议优先考虑...

    Java如何中断一个正在运行的线程[整理].pdf

    本篇文章主要探讨了如何正确地中断线程,避免潜在的问题。 首先,我们要明确一点:Java中直接停止线程的方法,如`Thread.stop`,是不安全的并且不推荐使用。这是因为`Thread.stop`可能导致数据不一致性和资源泄露,...

    理解多线程,写一个多线程应用程序,要求能在用户级实现线程的调度,如启动、挂起、恢复、停止,的C thread、java thread实现。

    Java中,`join`方法有类似功能,而`interrupt`方法可以用来中断线程,通常配合`isInterrupted`或`interrupted`检查中断状态。 在实际应用中,线程调度还需要考虑线程同步和互斥问题,以防止数据竞争和死锁。C语言中...

    多线程面试题

    9. **中断线程**:Thread类的interrupt()方法可以请求线程中断,但并不会立即停止线程,而是让线程在检查到中断标志后自行决定如何退出。 10. **守护线程(Daemon)**:守护线程是一种特殊的线程,当所有非守护线程...

    线程的几种控制方式以及线程间的几种通信方式

    6. **线程中断**:Java中`Thread.interrupt()`方法用于中断线程,Python中可以检查`thread.is_alive()`并抛出异常来实现。 7. **线程join()**:在Java中,`thread.join()`方法使得当前线程等待指定线程结束再继续...

Global site tag (gtag.js) - Google Analytics