1、run方法正常结束
public class StopThreadDemo { public static void main(String[] args) { PrintThread pt = new PrintThread(); pt.start(); } } class PrintThread extends Thread { public void run() { for (int i = 0; i < 10; i++) { System.out.println("print : " + i); } } }
2、可以在run方法中设置标记让线程正常结束
public class StopThreadDemo { public static void main(String[] args) { PrintThread pt = new PrintThread(); pt.start(); } } class PrintThread extends Thread { int i = 0; boolean isStop = false; public void run() { while(!isStop) { if ((i++) == 10) { isStop = true; } System.out.println("print : " + i); } } }
3、当线程处于冻结状态,没有指定的方式恢复到运行状态时,这时需要对冻结状态进行清除 强制让线程恢复到运行状态中来,这样就可以操作标记,让线程结束 Thread类中提供了该方法 interrupt()方法
public 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.changeFlag(); /* * interrupt方法只作用于那些因为执行了sleep、wait、join方法而休眠的线程,使他们不再休眠 */ t1.interrupt(); t2.interrupt(); break; } System.out .println(Thread.currentThread().getName() + "....." + num); } System.out.println("over"); } } class StopThread implements Runnable { private boolean flag = true; @Override public synchronized void run() { while (flag) { try { wait(); } catch (InterruptedException e) { // 可以在异常代码块中处理让线程正常退出或强制线程退出(return) System.out.println(Thread.currentThread().getName() + ".....Exception....."); flag = false; } System.out.println(Thread.currentThread().getName() + ".....run....."); } } public void changeFlag() { flag = false; } }
相关推荐
JAVA线程停止的方法
线程的启动、停止和连接 总结 第三章 同步技术 银行的例子 异步读取数据 一个进行同步操作的类 同步块 嵌套锁 死锁 返回到银行的例子 同步静态方法 总结 第四章 等待和通知 返回到银行的例子 等待和通知 wait...
代码里面包含一个并发4个线程同时运行 全部开始 全部停止 单个停止还有点问题。 还有生产者消费者 里面的里面能帮助你理解多线程的运用!
单线程程序 多线程程序 Thread类的run方法和start方法 线程的启动 线程的启动(1)——利用Thread类的子类 线程的启动(2)——利用Runnable接口 线程的暂时停止 线程的共享互斥 synchronized方法 synchronized阻挡 ...
NULL 博文链接:https://lxl13041491.iteye.com/blog/2167118
java中强制停止线程的Demo 里面有两个Demo
java 多线程内容 1. 线程概念 2. 线程的创建和停止 3. 线程的状态
如何停止线程 如何暂停线程 线程的一些其他用法 在char02包里放置了Java对变量和对象并发访问的知识的代码。内容如下: 对于方法的同步处理 对于语句块的同步处理 对类加锁的同步处理 保证可见性的关键字...
输入“stop”后,滚动字幕停止;输入“restart”后,滚动字幕重新开始滚动; (3)当用户在“命令”后的文本框中输入“change ”+字符串时,可更改字幕显示内容。如,输入“change 我可爱的小时钟”后,字幕变为“我...
讲述了让我们头疼的多线程
锁定排序 3.6 线程优先级 3.7 监控程序线程 3.8 在应用程序中加入线程 3.9 线程控制 3.9.1 线程启动 3.9.2 线程休眠 3.9.3 线程挂起 3.9.4 线程恢复 3.9.5 线程停止 3.9.6...
主要介绍了java安全停止线程的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java使用ExecutorService来停止线程服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、暂停或停止线程的理论 在Java编程中,要暂停或停止当前正在运行的线程,有几种方法。对于把线程转入睡眠Sleep状态,使用Thread.sleep()是最正确的方式。或许有人会问,为什么不使用等待wait()或通知notify()?要...
关于线程的动态停止 启动一个或n个线程 动态的卖票。经过一段时间后停止 停止的时间由自己或程序动态给出
主要介绍了java多线程之停止线程的方法实例代码详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
JAVA100例之实例66 实现对线程的控制,中断、挂起、恢复、停止
Java 中的线程中断是一种线程间的协作模式,通过设置线程的中断标志并不能直接终止该线程的执行,而是被中断的线程根据中断状态自行处理。即“线程中断”并不是字面意思——线程真的中断了,而是设置了中断标志...
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
线程被启动以后,自动调用目标对象的run()方法,除非线程被停止。在run()方法的第十一中,Applet重绘本身,然后睡眠1秒,同时要捕获异常事件并进行处理。 如果你离开这一页,程序将调用stop()方法,将线程置空。当你...