チョコミントアイス

StringBufferがマルチスレッド対応というのは、どういうことでしょうか?
StringBufferの引数に複数のスレッドがアクセスする変数を入れたら、効果を発揮するということでしょうか?
どういった場合問題なのでしょうか?
抽象的な質問で申し訳ありませんがよろしくお願いいたします。

A 回答 (2件)

>複数の子スレッドがappendしても、文字がごちゃまぜにならないということですね


いや、当然ごちゃまぜの文字列になるでしょうけど、個々のappendは
正常に処理されるということです。

マルチスレッド対応でない場合
・文字列がまともに追加されない
・appendが例外を発するなどして落ちる
など、異常動作が起きる可能性が有ります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2018/01/16 23:34

要するにappendとかがsynchronized になっているという


ことなんでしょう。複数のスレッドから同時にappendとか
できるということです。

マルチスレッドで文字を連結して文字列生成なんて離れ技は
そうそうやるとは思えないので、普通はStringBuilderで
充分でしょう。具体的な用途をちょっと思い付かないですが
ストリームI/Oとかで使うのかな???
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ということは、例えばメインスレッドのインスタンスフィールドにStringBuffer型の変数を用意して、
複数の子スレッドがappendしても、文字がごちゃまぜにならないということですね?
ほとんど、使う必要なさそうなクラスですね。

お礼日時:2018/01/16 00:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報