我在java swing上运行的项目有2个用于计数的按钮(启动/停止)。java线程在运行多线程时不会中断
当我点击开始按钮。有一个线程正在运行(Thread-0),然后单击停止按钮“Thread-0”消失,但是当我多次单击开始按钮时。有许多线程,例如Thread-5,Thread-6,.. Thread-10正在运行。
问题: 如果点击开始,然后停止计数是好的。但点击开始多次这是不正确的计数。
启动按钮
private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {
start();
btnStart.setEnabled(false);
btnStop.setEnabled(true);
}
停止按钮
private void btnStopActionPerformed(java.awt.event.ActionEvent evt) {
isEnable = false;
btnStop.setEnabled(false);
btnStart.setEnabled(true);
}
start()方法:
isEnable = true;
Thread refreshPlan = new Thread() {
@Override
public void run() {
while(isEnable) {
try {
sleep(CYCLE_TIME * 1000);
PLAN += 1;
planValue.setText(String.valueOf(PLAN));
} catch (InterruptedException ex) {
//ignore
}
}
};
};
refreshPlan.start();
灿我在开始按钮中多次点击时只运行单线程? 有什么建议吗?谢谢。
对不起我的英语不好。
为更好的帮助,尽快发布一个[SSCCE](http://sscce.org/),简短,可运行,可编译, 但是关于在Swing中的Concurency问题已回答 – mKorbel 2013-03-15 08:01:02