我在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