java怎样在新线程开始时停止正在运行的线程

newButton("a").addActionListener(newActionListener(){publicvoidactionPerformed(Action... new Button("a").addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Thread thread = new Thread() {
public void run() {
while(true) {
System.out.println("thread1 is running")
}

}
}
};
thread.start();
});

new Button("b").addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Thread thread = new Thread() {
public void run() {
while(true) {
System.out.println("thread2 is running")
}
}
}
};
thread.start();
});
怎样在点击按钮 b 的时候,结束按钮 a 上的线程再开始运程按钮 b 线程?
展开
 我来答
小寒爱旅游
2011-05-12 · TA获得超过1054个赞
知道小有建树答主
回答量:327
采纳率:100%
帮助的人:161万
展开全部
首先告诉你线程的安全关闭一般有这么几种方法,一个是设置运行标记量,如
boolean running = true;
Thread t = new Thread(new Runnable(){
public void run() {
while(running) {
//
}
}
};
那么你这个例子也可以类似的为按钮a上的线程添加一个全局运行标志量running,初值为true。在点击按钮b的时候,设置这个标志量为false,则按钮a上的线程就终止了。
另外一种方法就是采用interrupt()方法,不过就要求按钮a上的线程必须对按钮b中的线程可见。
qhfbesc
2011-05-12 · TA获得超过858个赞
知道小有建树答主
回答量:1035
采纳率:33%
帮助的人:637万
展开全部
楼主, 你虽然有很多个任务相同的线程,但其实这N个线程并不是同一个对象,
就好像,
人是一个类,有湖南,湖北,广东,广西人,
每个人都有一个身份标志。
你把湖南人的标志改了并不会影响到湖北人! 虽然他们都在同一个工地上干同样的活,虽然它们都是妈生的

所以本例中,N多个线程对象生成,并启动后一个一个都是单独的对象,在单独的运行空间里跑。表面上看起来是相同的任务,其实是不相同的
boolean runflag=true; 这个标志每个对象都有一个,你改变了其中一个以后,其它线程并不会受到影响;

那么如果我就是想达到改变一次就能停止所有线程呢? 方法是将runflag给设成static即 public static runflag=true;
这样这个runflag只会生成一次。改变一次就会影响全部对象。
就好像,湖南湖北人都只有一个祖国, 国家富强了,所有人都受益

如果要用id来管理线程也是可以的,用Hashtable来存储线程,Hashtable需要一个主键key,你在线程对象内生成一个不可能重复id传给它做主键就行了。
但即使这样,也不要随便使用sun不推荐使用的stop()方法停止线程,这样会造成很多不可预料的后果。 而还是应该使用改变runflag的形式
即:
myThread mt=(myThread)hashtable.get(id);
mt.runflag=false;

希望对你有所帮助
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoyao930626
2015-10-10 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:64.7万
展开全部
在开启新线程时,得到所有其它线程,然后把除主线程外的杀掉.

怎么得到其它线程?我也不知道,你先去百度看看java本身提供这种方法了吗,没有的话,你自己创建一个全局变量的集合,每次创建线程时都把它放到集合里面.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式