首页
论坛
图书
开发资料
在线文档
网址
下载
联系我们
 新闻│Java│JavaScript│Eclipse│Eclipse 英文│J2EE│J2ME│J2SE│JSP│Netbeans│Hibernate│JBuilder│Spring│Struts
站内搜索: 请输入搜索关键词

当前页面: 开发资料首页 → Java 专题 → 中断一个正在休眠的线程

中断一个正在休眠的线程

摘要: 中断一个正在休眠的线程

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> 当一个线程运行时,另一个线程可以调用Thread对象的interrupt()方法来中断它:
public void interrupt()
这个方法只是在目标线程中将中断标志设为true(它是Thread的内部标志),没有其他影响,表示它已经被中断,并立即返回。如果一个处于休眠的线程被中断,将导致它抛出InterruptedException。
public class SleepInterrupt extends Object implements Runnable {
public void run() {//计算1+2+3+...+200
int s=0;
int i=0;
try {
System.out.println("in run() - about to sleep for 20 seconds");
for(i=1;i<200;i++){
s=s+i;
Thread.sleep(20000);//进入休眠
System.out.println("in run() - woke up");
}
} catch ( InterruptedException x ) {
System.out.println("in run() - interrupted while sleeping");
System.out.println("i="+i+"; s="+s);//线程被中断后,任务执行情况。
// return;
}
System.out.println("i="+i+"; s="+s);//如果被中断,任务将不能完成。
System.out.println("in run() - doing stuff after nap");
System.out.println("in run() - leaving normally");
}


public static void main(String[] args) {
SleepInterrupt si = new SleepInterrupt();
Thread t = new Thread(si);//构造线程
t.start();
// 确保新线程有机会运行一段时间
try { Thread.sleep(2000); }
catch ( InterruptedException x ) { }
System.out.println("in main() - interrupting other thread");
t.interrupt();//在主线程中中断另一个正在休眠的线程。
System.out.println("in main() - leaving");
}
}

<table width="679" height="28" border="0"> <tr> <td width="304">运行结果:

C:\java>javac SleepInterrupt.java

C:\java>java SleepInterrupt
in run() - about to sleep for 20 seconds
in main() - interrupting other thread
in run() - interrupted while sleeping
i=1; s=1
i=1; s=1
in run() - doing stuff after nap
in run() - leaving normally
in main() - leaving
function TempSave(ElementID) { CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value); CommentsPersistDiv.save("CommentXMLStore"); } function Restore(ElementID) { CommentsPersistDiv.load("CommentXMLStore"); document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent"); } </td> <td width="365"> </td> </tr> </table>
</td> </tr> <tr>


↑返回目录
前一篇: 打印日期的三种方法
后一篇: JSP中的COOKIE操作

首页 | 全站 Sitemap | 联系我们 | 设为首页 | 收藏本站
版权所有 Copyright © 2006-2007, Java 编程资料牛鼻站, All rights reserved