[過去ログ] Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
928
(1): デフォルトの名無しさん [sage] 2016/09/25(日) 14:29:48.97 ID:oyerjsz0(1/3) AAS
>>927
927(1): デフォルトの名無しさん [sage] 2016/09/25(日) 14:26:19.46 ID:xgjFkYJ1(1/3) AAS
ArrayでFIFOバッファを作ったとしてスレッドAからArray#concatで追加
スレッドBからArray#eachで読み出したいと考えています
eachで読み出している最中に要素が追加されても問題ないでしょうか?

whileで条件を確認しながらArray#shiftで読むと遅いので出来ればArray#eachを
使いたいのですが・・・
素直に Thread::Queue 使えばええんとちゃうのん?
933
(1): デフォルトの名無しさん [sage] 2016/09/25(日) 21:18:44.25 ID:oyerjsz0(2/3) AAS
>>932
932(2): デフォルトの名無しさん [sage] 2016/09/25(日) 21:15:17.31 ID:xgjFkYJ1(2/3) AAS
>>928
そんなのあったっけ・・・っと思ったら2.3から追加された物ですか
今すぐに動かせるのは2.1なので試せていませんが
リファレンスマニュアルを読むとpushで追加しpopで読み出していくようですね
これだと結局whileで条件を見ながらループを回すようですが速くなるのでしょうか?

>>929
バッファを2つ用意して交互に使用しeachで読み出すようにしたらwhile&Array#shiftの
1/3くらいで処理が終わるようになりました。コードの可読性が低下しましたけど
1.9 にも Queue クラスあるよ
935
(1): デフォルトの名無しさん [sage] 2016/09/25(日) 22:07:55.11 ID:oyerjsz0(3/3) AAS
>>934
934(1): デフォルトの名無しさん [sage] 2016/09/25(日) 22:03:00.52 ID:xgjFkYJ1(3/3) AAS
>>933
えっ?リファレンスマニュアルを見てもそれっぽいのはないような・・・
外部リンク[html]:docs.ruby-lang.org
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s