- PR -

Swingについて

1
投稿者投稿内容
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2003-07-17 12:45
本などでSwingはスレッドセーフと書いてあったのですが、
スレッドセーフであることのメリットと、デメリットがよくわからないです。
また、EclipseなどのSWTはスレッドセーフなのでしょうか?
わかる人がいたら教えていただきたいです。お願いします。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-07-17 12:55
unibon です。こんにちわ。

引用:

sinさんの書き込み (2003-07-17 12:45) より:
本などでSwingはスレッドセーフと書いてあったのですが、
スレッドセーフであることのメリットと、デメリットがよくわからないです。


Swing については、
http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
に比較的まとまっている説明があります。
限られた状況に限定すればスレッドセーフということであり、
換言すれば、ほとんどスレッドセーフではないことになります。
メリットは、複数のスレッドから同時にアクセスしても破綻しない、
デメリットは、機構が複雑になり遅くなる、ということでしょうか。

引用:

sinさんの書き込み (2003-07-17 12:45) より:
また、EclipseなどのSWTはスレッドセーフなのでしょうか?
わかる人がいたら教えていただきたいです。お願いします。


すみません。これは分かりません。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2003-07-17 13:29
こんにちはWataです。
引用:

sinさんの書き込み (2003-07-17 12:45) より:
また、EclipseなどのSWTはスレッドセーフなのでしょうか?
わかる人がいたら教えていただきたいです。お願いします。


EclipseのGUIであるSWTもSwingと同様に基本的にシングルスレッドで動作します。
そして、スレッドセーフかとたずねられれば、
「基本的にシングルスレッドで動作するのでマルチスレッドに関する問題が発生しにくい」
というレベルだと思います。ただしこれはSwingも同様です。

SWTでは、他スレッドからのGUIの変更はSwingのSwingUtilities.invokeLater()やSwingUtilities.invokeAndWait()に該当するDisplay.asyncExec()やDisplay.syncExce()を使用します。

[ メッセージ編集済み 編集者: Wata 編集日時 2003-07-17 13:58 ]
1

スキルアップ/キャリアアップ(JOB@IT)