私は実際にJava concuremcyを読んでいます。今私は9.1章を達成します。しかし、私はJavaでGUIアプリケーションを開発していませんでした。本からレガシーJavaアプリケーションでの「メインイベントループ」の様子[JCIP 9.1]
引用:
なぜGUIはシングルスレッドですか?
昔、GUIアプリケーションはシングルスレッドで、GUIイベント は「メインイベントループ」から処理されました。最新のGUIフレームワークでは、わずかに異なる モデルが使用されます。GUIイベントを処理する専用のイベント ディスパッチスレッド(EDT)を作成します。
私は昔は開発者ではなかったので、GUIアプリケーションで「メインイベントループ」が何を意味するのか分かりません。また、私は明確な説明に私は応答しません。
このレガシー技術の例を表示できますか?タスクを生成して消費するキューがありますか?
** invokeLater **はEDTと並列に呼び出しますか? – gstackoverflow
はい、invokeLater(task)は任意のスレッドから呼び出すことができます。このメソッドは、単にEDTイベントキューにタスクをポストします。 EDTはそのキューからタスクを1つずつ取り出し、task.run()を呼び出します。 –
@gstackoverflow 'invokeLater'は物事をEDTで*実行するために使用されます。 EDTから発生しなければならないUIとのすべての対話。 EDTと並行して実行されているスレッドから 'invokeLater'を呼び出して、いくつかの処理を委譲することができます。 –