2011-09-06 85 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