2011-09-06 55 views
6

我是Java Swing的新手,我的问题与事件队列和调度线程有关。多个事件调度线程

我读过,有可能有多个事件队列,每个事件队列每个AppContext实例。同样,它意味着每个AppContext事件队列都有其自己的事件分派线程。

+2

基本的东西,你有什么想多EDTS或者是这个理论的一个原因吗? –

+0

@Gnon我的意图是知道如果只有一个调度线程存在,如何处理多个事件队列。 – Poorna

+1

如果你可以提供一个链接到你阅读的地方,这将有所帮助。 :) –

回答

3

据我所知,只有一个事件调度线程是可能的。

显然AppContext is not meant to be used by developers,虽然我不是很熟悉它。

+1

+1它看起来像它的小程序容器。 – trashgod

+1

我知道每个通常分配给独立线程组的AppContext都有自己的队列,它间接表示它有自己的EDT – Poorna

+0

我猜有两个AppContext在同一个JVM上运行会给你两个EDT,尽管它们对于大多数目的完全分开的程序。 –

1

1)基本上你只需要知道,如果你的代码将在美国东部时间完成(所有更改都必须在美国东部时间来完成),

2)如果您有任何疑问,可以测试

if (EventQueue.isDispatchThread()) { 

或者(如果是在美国东部时间那是相同的,则返回true)

if (SwingUtilities.isEventDispatchThread()) { 

herehere

3)后台任务的所有输出必须裹进invokeLater(),约Concurency in Swing