public class Object13
{
public static void main(String args[])
{
Thread p = Thread.currentThread(); //此处得到main线程
p.interrupt();//在这里我中断了main线程, 但为什么仍然会输出下面的 Hello 语句
System.out.println(" Hello ");
}
}可用分没了
解决方案 »
- 大家看下能不能解决一个数据结构问题?
- 我想写一个多界面的C/S架构的管理系统,那些面版都写到一个类里面吗?
- java构造函数中能否调用this.set()方法
- 居然传递的值为Null
- 求助大家:如何使用POI来打开或操作多个Excel表格?
- hashtable如何排序
- java怎样计算小数点后的位数?
- args[]参数的写法(java初学者的傻问题)
- 请教高手,如何在一个string 中加入硬回车
- 如何让textview的值根据combobox的值而改变?
- jni 异常Exception in thread "main" java.lang.UnsatisfiedLinkError: Usb_ChangePin
- JAVA中的空指针错误真烦人
这个interrupt()是用来中断阻塞了的线程的,也就是说一个线程可能在sleep,也可能wate()以等待资源。
在这种情况下你不想该线程继续阻塞了。要打断它,就用interrupt()public void interrupt()中断线程。
如果当前线程没有中断它自己(这在任何情况下都是允许的),则该线程的 checkAccess 方法就会被调用,这可能抛出 SecurityException。 如果线程在调用 Object 类的 wait()、wait(long) 或 wait(long, int) 方法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException。 如果该线程在可中断的通道上的 I/O 操作中受阻,则该通道将被关闭,该线程的中断状态将被设置并且该线程将收到一个 ClosedByInterruptException。 如果该线程在一个 Selector 中受阻,则该线程的中断状态将被设置,它将立即从选择操作返回,并可能带有一个非零值,就好像调用了选择器的 wakeup 方法一样。 如果以前的条件都没有保存,则该线程的中断状态将被设置。中断一个不处于活动状态的线程不需要任何作用。