我讀的Java concuremcy在實踐中看起來「主事件循環。現在我達到了9.1章。但我沒有在Java上開發GUI應用程序。從本書如何在傳統的Java應用程序[JCIP 9.1]
報價:
爲什麼圖形用戶界面單線程?
在過去,GUI應用程序是單線程和GUI事件 從一個「主事件循環」進行處理。現代圖形用戶界面框架使用僅略有不同的 模型:它們創建用於處理GUI事件的專用事件 調度線程(EDT)。
我以前不是開發人員,因此我不明白GUI應用程序中的「主事件循環」是什麼意思。谷歌也沒有迴應我明確的解釋。
,你能否告訴例如這一傳統技術的?是否有生產和消費任務的隊列?
** invokeLater **與EDT並行調用? – gstackoverflow
是的,invokeLater(任務)可以從任何線程調用。此方法只是將任務發佈到EDT事件隊列。 EDT從該隊列中逐一獲取任務並調用task.run()。 –
@gstackoverflow'invokeLater'用於在* EDT上運行*所有與用戶界面的交互必須從EDT發生。您可以從與EDT並行運行的線程中調用'invokeLater',將一些工作委託給它。 –