回答編集履歴

1

誤字訂正

2016/10/10 08:18

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- サーバースレッドから画面の状態を変える場合はSwingUtilities#InvokeLater/InvokeAndWaitなどを使うと簡単に行えます。逆にEDTから長期間動作しっぱなしのサーバースレッドのようなものへ任意のタイミングで指示をしようとすると若干面倒かも知れません。それ用の便利なクラスもあると思いますが初めてマルチスレッド処理を学ぶケースでは前提知識が少なくその機能の説明自体がわからないこともありそうです。私などはそういったクラスのAPIリファレンスの説明を読んでも最初はちんぷんかんぷんでした。ですのでネットにある記事を手掛かりにするとよいと思います。まずは基本となるThread, synchoronizedや複数のスレッドから安全に更新できるデータをサポートするクラス(AtomicXXX)のあたりから学ばれるとよいと思います。なおEDTからサーバースレッドへコマンドを渡す素朴な例を以下に挙げます。Startボタンでサーバー開始、Stopボタンでサーバーを終わらせるといった感じです。(コンパイルしてないので綴りミスなどあるかもしれませんが雰囲気はつかめるかと思います)
5
+ サーバースレッドから画面の状態を変える場合はSwingUtilities#InvokeLater/InvokeAndWaitなどを使うと簡単に行えます。逆にEDTから長期間動作しっぱなしのサーバースレッドのようなものへ任意のタイミングで指示をしようとすると若干面倒かも知れません。それ用の便利なクラスもあると思いますが初めてマルチスレッド処理を学ぶケースでは前提知識が少なくその機能の説明自体がわからないこともありそうです。私などはそういったクラスのAPIリファレンスの説明を読んでも最初はちんぷんかんぷんでした。ですのでネットにある記事を手掛かりにするとよいと思います。まずは基本となるThread, synchronizedや複数のスレッドから安全に更新できるデータをサポートするクラス(AtomicXXX)のあたりから学ばれるとよいと思います。なおEDTからサーバースレッドへコマンドを渡す素朴な例を以下に挙げます。Startボタンでサーバー開始、Stopボタンでサーバーを終わらせるといった感じです。(コンパイルしてないので綴りミスなどあるかもしれませんが雰囲気はつかめるかと思います)
6
6
 
7
7
 
8
8