プロフィール

fumi

  • Author:fumi
  • 最近の悩み: 昔のHPのパスワードを忘れて閉鎖できない。


最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

ブログ内検索

RSSフィード

リンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Multithreading

なんだか知らないけどさっきから3回も停電があった。
一瞬電気が落ちるだけなんだけど、PCを吹っ飛ばすには十分。

この記事も一回吹っ飛んだけど、それより何より書いてるソースコードが吹っ飛びそうで怖い…


今日はちょっと覚書。

やっとJavaのマルチスレッド分かってきて面白くなってきた。

Swingのコンポーネントはシングルスレッド設計なので、一度Visibleになった後はevent-dispathing threadを通してのみ操作されるべきである。

ところでSwingから時間のかかる処理を呼び出すと画面がロックしてしまう。
そこで処理を別スレッドで行うわけだが、この処理の途中でSwingに対して操作する場合SwingUtilitiesの2つのメソッド、invokeLater又はinvokeAndWaitを通して行うべきである。

上記のメソッドは共にevent-dispathing threadのキューに渡されたRunnableクラスを追加する。
そこでRunnableクラスを作るのだがコレはanonymous classで実装するか似た処理が多ければ別に専用のRunnableクラスを作っておく。


というのが今日やった流れ。

しかしこのSwingに対する処理の流れって結構面倒くさい。
複雑な操作を行う場合はどうするんだろ。
もっといい方法はないかしら…
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

 BLOG TOP 


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。