终止线程的三种方法 有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。 1 ...
分类:
编程语言 时间:
2016-07-20 19:31:02
阅读次数:
194
当对一个线程调用interrupt方法时,线程的中断状态将被置位。这是每一个线程都具有的boolean标志。 interrupt 中断线程。 测试当前线程是否已经中断。 interrupted: 线程的中断状态 由该方法清除。 测试线程是否已经中断。 isInterrupted: 线程的中断状态 不 ...
分类:
编程语言 时间:
2016-06-27 13:53:24
阅读次数:
169
2. 终止线程的方式
Thread中的stop()和suspend()方法,由于固有的不安全性,已经建议不再使用!
下面,我先分别讨论线程在“阻塞状态”和“运行状态”的终止方式,然后再总结出一个通用的方式。
2.1 终止处于“阻塞状态”的线程
通常,我们通过“中断”方式终止处于“阻塞状态”的线程。
当线程由于被调用了sleep(), wait(), join()等方法而进入阻塞状态;若此...
分类:
编程语言 时间:
2016-06-23 16:09:09
阅读次数:
239
禁止系统调度上一节《 多线程导致的临界区问题》中由于 test1 线程被 test2 线程打断,才导致了我们没有得到预期的结果,我们一般可通过关闭中断和调度器上锁这两种简单的途径来禁止系统调度,防止线程被打断,从而保证临界区不被破坏。 1、 关闭中断线程中关闭中断保护临界区的结构如下: 把调度器锁住 ...
分类:
编程语言 时间:
2016-05-17 17:47:15
阅读次数:
368
一,介绍 这篇文章主要记录使用 interrupt() 方法中断线程,以及如何对InterruptedException进行处理。感觉对InterruptedException异常进行处理是一件谨慎且有技巧的活儿。 由于使用stop()方法停止线程非常的暴力,人家线程运行的好好的,突然就把人家杀死了 ...
分类:
编程语言 时间:
2016-05-01 17:49:23
阅读次数:
289
啦啦啦啦,从头整理一遍java并发的内容.开始是基本的线程操作 线程状态切换: 新建线程: 终止线程: Thread.stop() 不推荐使用。它会释放所有monitor 中断线程: public void Thread.interrupt() // 中断线程 public boolean Thre ...
分类:
编程语言 时间:
2016-04-24 11:02:35
阅读次数:
276
使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。 结果 特别要注意的是标红的地方:如果只是单纯的调用interrupt()方法,线程并没有实际被中断, ...
分类:
编程语言 时间:
2016-04-18 22:25:02
阅读次数:
358
过多的同步有可能出现死锁,死锁的操作一般是在程序运行的时候才有可能出现。多线程中要进行资源的共享,就需要同步,但同步过多,就可能造成死锁。死锁例子:package com.vince;/** * 线程死锁 * @author acer * */public class DeadThreadDemo ...
分类:
编程语言 时间:
2016-01-19 23:40:53
阅读次数:
225
线程的状态新建(new):当线程被创建时,它只会短时间处于这种状态。它已经分配了必要的系统资源,完成了初始化。之后线程调度器将把这个线程转变为可运行或者阻塞状态;就绪(Runnable):在这种状态下,只要调度器分配时间片给线程,线程就可以运行了;阻塞(Blocked):有某个条件阻止线程运行,调度...
分类:
编程语言 时间:
2016-01-06 01:34:17
阅读次数:
431
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/本文对中断系统进行了全面的分析与探讨,主要包括中断控制器、中断分类、中断亲和力、中断线程化与 SMP 中的中断迁徙等。首先对中断工作原理进行了简要分析,接着详细探讨了中...
分类:
系统相关 时间:
2015-12-07 22:23:50
阅读次数:
352