java中终止程序的执行

现在我在做的是一个java GUI,功能是点击一个按钮会执行一段代码,这段代码要执行的时间很长,如果执行一半的时候不想再继续,则点击另外一个按钮停止代码的执行。这个停止执行应该怎么实现呢?各位大哥大姐帮帮忙,急.......分数不多,如果可用,一定加分。谢谢

方案操作如下:

(1)让程序在一个单独的线程中运行,然后在终止时,可以用线程的终止方法来结束它。

(2)退出Java程序时尽量不要使用java.lang.System的exit方法。Exit æ–¹æ³•å¯ä»¥ç»ˆæ­¢JVM,从而终止程序,但如果同时运行了另一个Java程序,使用exit方法就会让该程序也关闭,这显然不是希望看到的情况!!!!

要退出Java程序,可以使用destory()退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。

只有在程序非正常退出时,才使用exit方法退出程序

http://www.baidu.com/s?wd=52095384130

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-19

在java程序中,可以使用java.lang.System的exit方法来终止程序的执行,

public static void main(String[] args) {
System.out.println("开始进入程序...");
//do something
System.out.println("程序准备退出了!");
System.exit(0);
//下面这句话将不会打印出来
System.out.println("程序已经退出了!");
}

但是使用exit方法的本质是终止了JVM的运行,如果同时运行了另外一个程序,使用exit方法同样也会使该程序也终止,要避免此种情况可以使用interrupt()来中断退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。

public static void main(String[] args) {
System.out.println("开始进入程序...");
//do something
new Thread(){
public void run() {
while (true) {
System.out.println("我是另外的线程...");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}.start();

//获取man线程
Thread main = Thread.currentThread();
System.out.println(main.getName());
main.interrupt();
System.out.println("main线程已经退出了,但是不影响其他线程运行!");
}

只有在程序非正常退出时,才使用exit方法退出程序。

第2个回答  2010-10-14
你这个要用到多线程了,
如果你不用多线程,程序运行时,你是点不到按钮的。
多线程的停止方法是Thread.stop();
但现在已不推荐这么使用,一般都是加一个标志,
如运行时flag=true;
停止设置flag=false;

public void run(){
while(flag){
//你的执行长时间代码
}
}
第3个回答  推荐于2017-10-05
想直接整个程序的结束用System.exit(0);
如果是在for循环,while或if中尝试用return ,break等

参考资料:JAVA API

本回答被提问者采纳
第4个回答  2010-10-13
利用多线程: 单独开启一个线程A执行你的耗时很长的代码段,点击停止按钮后,挂起或者中断线程A。
相似回答