0

別のスレッドでGUIを作成し、GUIで発生した更新がそのスレッドで発生し、そのスレッドのみがスレッドセーフであることを確認してください。私はこれを確実にするのは難しいだろうと知っているので、私は一種の質問をしています。他のスレッドと比較して、EDTに関して特別な/異なるものはありますか?EDTではない1つのスレッドでGUIを処理すると、それでもスレッドセーフですか?

私はこの問題の良い習慣や他の解決策については尋ねていません。純粋に技術的なレベルで、基本的にEDTのようなスレッドを扱うのであれば、新しいスレッドは安全に使用できますか?

+0

ユーザがGUI上でマウスをクリックすると、どのスレッドでMouseEventがMouseListenersに配信されますか? – VGR

+0

私はそれがいつもEDTに届けられると思うでしょう。彼らが大学でこれらのことを言いたいと思っています。私は並行処理モジュールのために特に残忍な講師を持っていたので、明確にするために、EDTでいつも*行われているイベントがありますか?もしこれらがばかげた質問であれば申し訳ありません。 – DCON

+1

正しい。イベントディスパッチスレッドは、AWTシステムの制御下にあります。ネイティブ入力に基づくJavaイベントの作成は内部的に行われ、そのスレッドに送信されます。 – VGR

答えて

1

プロセスがUI要素を読み書きする唯一のスレッドではないため、スレッドセーフではありません。 JREも読み書きはできますが、EDT経由で実行します。したがって、EDTではない単一のスレッドで読み書きを行っても、EDTで実行するプロセスがあるため、UI要素が1つ、スレッド数が少なく、同期がなくなります。

関連する問題