本人对事件派发线程还不太了解,我们使用事件派发线程刷新界面的时候,java是否是将刷新的事件放入了一个队列中,派发线程进行派发执行?我想应该是这样的吧。
那么如果插入的过于频繁,而刷新的事件又比较耗时,是否会有事件派发线程取出执行的速度赶不上插入的速度,不堪重负将队列按一定规则删除某些事件的情况?这种情况怎么验证呢?
如果哪位大人有相关的资料,谢谢能告诉我:)
那么如果插入的过于频繁,而刷新的事件又比较耗时,是否会有事件派发线程取出执行的速度赶不上插入的速度,不堪重负将队列按一定规则删除某些事件的情况?这种情况怎么验证呢?
如果哪位大人有相关的资料,谢谢能告诉我:)
public class ThreadTemp implements Runnable{
private Something s;
public ThreadTemp(Something s){
this.s = s;
}
public void run(){
while(true){
//do something...
Something sub = new Something();
Thread t = new Thread(new ThreadTemp(sub));
t.start();
}
} public static void main(String[] args){
Something main = new Something();
//set main...
Thread t = new Thread(new ThreadTemp(main));
t.start();
}}
适当的synchronized是不错的选择
一个事件会不会丢弃,取决于事件的类型,有些事件是可以能被丢弃的,有一些事件不会被丢弃,这个要看具体的情况。
参考: KeyEventDispatcher