新手关于事件派发线程问题,大家讨论^^

microjuz 2005-12-29 10:27:37
本人对事件派发线程还不太了解,我们使用事件派发线程刷新界面的时候,java是否是将刷新的事件放入了一个队列中,派发线程进行派发执行?我想应该是这样的吧。
那么如果插入的过于频繁,而刷新的事件又比较耗时,是否会有事件派发线程取出执行的速度赶不上插入的速度,不堪重负将队列按一定规则删除某些事件的情况?这种情况怎么验证呢?
如果哪位大人有相关的资料,谢谢能告诉我:)
...全文
145 点赞 收藏 10
写回复
10 条回复
bovy 2006年01月13日
事件产生后的确是放在队列里面的,然后,分发处理线程会调用相关的监听器处理。
一个事件会不会丢弃,取决于事件的类型,有些事件是可以能被丢弃的,有一些事件不会被丢弃,这个要看具体的情况。
参考: KeyEventDispatcher
回复 点赞
xiaobzg 2006年01月10日
频繁的插入和执行操作,是否会删除某些事件的情况,主要由你的编码决定
适当的synchronized是不错的选择
回复 点赞
cenlmmx 2006年01月05日
帮你顶
回复 点赞
darkula 2006年01月05日
大概就是这样子吧?一个简单的小例子
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();
}

}
回复 点赞
treeroot 2006年01月05日
up
回复 点赞
十分钟年华老去 2006年01月05日
这个你去弄本操作系统的书看就好了嘛,讲线程调度的,有很多啊。
回复 点赞
microjuz 2006年01月04日
晕,再顶一次
回复 点赞
microjuz 2006年01月04日
我要投诉CSDN!!!
回复 点赞
yyjzsl 2006年01月04日
帮你再顶一下哈!
回复 点赞
microjuz 2005年12月30日
靠,怎么没有人嘞~!!!没来csdn这么久,这么没人气了?
回复 点赞
发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告