java中的事件队列是怎么回事,和windows中的消息队列类似吗?
一个线程一个事件队列? 
可以通过
runtime.getsyseventqueue,系统的消息队列是怎么回事?

解决方案 »

  1.   

    获取应用程序或 applet 的 EventQueue 实例。根据 Toolkit 实现,对于不同的 applet,可能返回不同的 EventQueue。所以 applet 不能假设此方法返回的 EventQueue 实例将由其他 applet 或系统共享。 
    applet可能会因为浏览器的实现不同,每个applet使用都有独立的EventQueue 实例。
      

  2.   

    EventQueue 是一个与平台无关的类,它将来自于基础同位体类和受信任的应用程序类的事件列入队列。 它封装了异步事件指派机制,该机制从队列中提取事件,然后通过对此 EventQueue 调用 dispatchEvent(AWTEvent) 方法来指派这些事件(事件作为参数被指派)。该机制的特殊行为是与实现有关的。指派实际排入到该队列中的事件(注意,正在发送到 EventQueue 中的事件可以被合并)的惟一要求是: 按顺序。 
    也就是说,不允许同时从该队列中指派多个事件。 
    指派顺序与它们排队的顺序相同。 
    也就是说,如果 AWTEvent A 比 AWTEvent B 先排入到 EventQueue 中,那么事件 B 不能在事件 A 之前被指派。 
    一些浏览器将不同基本代码中的 applet 分成独立的上下文,并在这些上下文之间建立一道道墙。在这样的场景中,每个上下文将会有一个 EventQueue。其他浏览器将所有的 applet 放入到同一个上下文中,这意味着所有 applet 只有一个全局 EventQueue。该行为是与实现有关的。