- - PR -
スレッド起動後にメインで作成したオブジェクトは別スレッドから参照できますか?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-12 22:24
別スレッドのオブジェクト参照って可能ですか?
メインの処理から、スレッドを一つ立てます。 メインの処理と、スレッドから共通で参照できるような String文字列を格納したArrayListオブジェクトを作りたいと考えてます。 メイン側では、共通に参照するArrayListオブジェクトに、 データを追加したり、削除したりしています。 スレッド側では、そのArrayListオブジェクトを常にループさせて、 共通のArrayListオブジェクトの中のString文字列を 常にに出力させたいと考えてます。 簡単なサンプルを作成して、試しましたがうまく参照しません。 スレッドを起動すると、メイン側の処理でいくらArrayListオブジェクト にデータを入れたりしても、 スレッド側では、参照されないということはありますか? 知ってるかたいましたら、お願いします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-04-12 22:26 ] | ||||
|
投稿日時: 2006-04-12 22:27
排他処理のタイミングが問題になることはありますが、スレッド間で同一のオブジェクトを
参照することはもちろん可能です。おそらくコードになんらかの問題があると思うので、 差し支えない範囲で載せてみてはどうでしょうか。 | ||||
|
投稿日時: 2006-04-12 23:37
これで参照できるのが確認できると思います。 | ||||
|
投稿日時: 2006-04-13 00:48
複数のスレッドから同一のオブジェクトを参照するのは、何の問題もありません。
ただし、
これをそのまま実現しようとすると、排他処理がかなり面倒なことになります。 | ||||
|
投稿日時: 2006-04-13 01:25
すみません、質問の意味を間違えていました。
追加・削除側のスレッドと、参照用の別スレッド間で、 同一のリストに対する処理をアトミックに行いたい場合は、 それぞれの操作にsynchronized節を使用しましょう。 | ||||
|
投稿日時: 2006-04-13 13:35
ありがとうございました。
なんとか解決できましたが、別の問題が発生しました。 スレッドを新規にたちあげたので、 とりあえず、この問題は大丈夫です。 返信してくださったみなさんありがとうございました。 |
1