涉及到更新GUI,使用javax.swing.Timer时定时执行达不到所需次数
CPU为i5-8400,内存为16G
import javax.swing.Timer;
int i = 0;
Timer timer1 = new Timer(5, new ActionListener() {
public void actionPerformed(ActionEvent e) {
long t1 = System.currentTimeMillis();
function1();
long t2 = System.currentTimeMillis();
System.out.println(t2-t1);
}
});
Timer timer2 = new Timer(5, new ActionListener() {
public void actionPerformed(ActionEvent e) {
long t1 = System.currentTimeMillis();
function2();
long t2 = System.currentTimeMillis();
System.out.println(t2-t1);
` System.out.println(i++);
}
});
timer1.start();
timer2.start();
t2-t1的时间为0或1或2,i的增加速度为每秒33次左右。
修改Timer延迟为0,i的增加速度提升到50左右,理论来说执行一次Timer所需时间为5-8毫秒,从而i的增加次数应该达到125-200。
定时执行效果为每秒100+