对于学习目的,我正在努力使用Timer,TimerTask和SwingWorker运行线程 WITHOUT 。来自PHP背景EDT是一个新的&我也很难理解,我需要你了解我的情况。
我创建/构造了以下代码,但是我想问一下这个线程安全吗?这让我更加困惑,因为我在另一个线程上问这个问题,他们只是说这是安全的,但很难看。他们只是说句子,我会认为它不安全,因为Thread.sleep()来自主线程,为什么它安全?
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//========================================================================
Thread worker = new Thread() {
public void run() {
// Simulate doing something useful.
for(int i=0; i<=10; i++) {
final int count = i;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
countLabel1.setText(Integer.toString(count));
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
} // end loop
SwingUtilities.invokeLater(new Runnable() {
public void run() {
statusLabel.setText("Completed.");
}
});
}
};
worker.start();
//==========================================================================
}
});