java 线程 final 在java中将线程定义为final的会有什么影响?怎么样彻底杀死进程,并重新创建一个进程。

或者先中断线程,再重新执行,不过要从线程的最开始部分开始执行说错了,都是线程,没有进程。怎样彻底杀死线程,并重新创建一样的线程。... 或者先中断线程,再重新执行,不过要从线程的最开始部分开始执行
说错了,都是线程,没有进程。怎样彻底杀死线程,并重新创建一样的线程。
展开
 我来答
Zoujy1022
2012-12-25 · TA获得超过1121个赞
知道小有建树答主
回答量:803
采纳率:0%
帮助的人:618万
展开全部
要杀死一个线程并不容易。因为你就算现实调用了终止线程的方法。它也未必奏效。
然后你所说的一会进程一会线程的 ,到底是哪一个。。。线程和进程 区别大了。。。
更多追问追答
追问
说错了,都是线程。。。
追答
有stop方法,但是!
我说杀线程不容易是因为:
stop()这个方法已过时。 该方法具有固有的不安全性。用 Thread.stop 来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查 ThreadDeath 异常的一个自然后果)。如果以前受这些监视器保护的任何对象都处于一种不一致的状态,则损坏的对象将对其他线程可见,这有可能导致任意的行为。stop 的许多使用都应由只修改某些变量以指示目标线程应该停止运行的代码来取代。目标线程应定期检查该变量,并且如果该变量指示它要停止运行,则从其运行方法依次返回。

如果目标线程等待很长时间(例如基于一个条件变量),则应使用 interrupt 方法来中断该等待。

但是interrupt这个方法也有局限性。他并不是你一调用就立刻终止的。要在底层做一系列很复杂的操作。

所以如果要彻底满足你的需求, 要从你的代码设计入手。多线程永远都是很复杂的一件事情。
套用thinking in java里面一句话。”没有人敢说自己掌握了多线程“
makwy
2012-12-25 · 超过35用户采纳过TA的回答
知道答主
回答量:149
采纳率:0%
帮助的人:94.8万
展开全部
人为的设置一个会使java 线程报错的参数
然后需要杀死进程的时候 就调用这个参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoxiaoyan994
2012-12-25
知道答主
回答量:97
采纳率:0%
帮助的人:26.2万
展开全部
public class processTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Runtime runtime=Runtime.getRuntime();
// Process process=new Process();
String command="H:\\a.doc";
try {
// runtime.exec("cmd /c");
Process process=runtime.exec("cmd /c"+command);
process.destroy();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
追问
我问的是线程,不是进程。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-25
展开全部
DDDDDDDDD
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式