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

microjuz 2005-12-29 10:27:37
本人对事件派发线程还不太了解,我们使用事件派发线程刷新界面的时候,java是否是将刷新的事件放入了一个队列中,派发线程进行派发执行?我想应该是这样的吧。
那么如果插入的过于频繁,而刷新的事件又比较耗时,是否会有事件派发线程取出执行的速度赶不上插入的速度,不堪重负将队列按一定规则删除某些事件的情况?这种情况怎么验证呢?
如果哪位大人有相关的资料,谢谢能告诉我:)
...全文
183 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
这个你去弄本操作系统的书看就好了嘛,讲线程调度的,有很多啊。
microjuz 2006-01-04
  • 打赏
  • 举报
回复
晕,再顶一次
microjuz 2006-01-04
  • 打赏
  • 举报
回复
我要投诉CSDN!!!
yyjzsl 2006-01-04
  • 打赏
  • 举报
回复
帮你再顶一下哈!
microjuz 2005-12-30
  • 打赏
  • 举报
回复
靠,怎么没有人嘞~!!!没来csdn这么久,这么没人气了?

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧