StringIO類似のクラスを探していて、プログラムのさまざまな部分から同時に読み書きすることができます。
バッファーに文字を書き込む(追加する)プログラムの部分から、読みたい別の部分からバッファーに書きたい。Ruby StringIO同時読み書き用
たStringIOの問題点は以下の通りです:
buffer = StringIO.new
buffer.write "Foobar" # Write to the buffer
buffer.rewind # Move the pointer to beginning
buffer.getc #=> F
buffer.getc #=> o
buffer.write("something") # Write more to the buffer
buffer.string #=> Fosomething
buffer.getc #=> nil
buffer.pos #=> 11
私は、バッファに書き込むたびに、それが現在の位置に書き込まれます。最後に、その位置が最後に書き込まれた文字に移動します。
私が必要とするのは、読み書きのための2つの別個の位置を持つStringBufferです。このようなことがルビーに存在するのでしょうか、それとも私自身でやらなくてはなりませんか?
スレッド間で共有変数を変更することは、MRIでは非決定論的です。 – Anthony