ブックマーク / docs.ruby-lang.org (4)

  • class Thread::Queue (Ruby 4.0 リファレンスマニュアル)

    [edit] aliases: Queue 要約 Queue はスレッド間の FIFO(first in first out) の通信路です。スレッドが空のキューを読み出そうとすると停止します。キューになんらかの情報が書き込まれると実行は再開されます。 最大サイズが指定できる Queue のサブクラス Thread::SizedQueue も提供されています。 例 require 'thread' q = Queue.new th1 = Thread.start do while resource = q.pop puts resource end end [:resource1, :resource2, :resource3, nil].each{|r| q.push(r) } th1.join 実行すると以下のように出力します。 $ ruby que.rb resource1 reso

    proxy0721
    proxy0721 2023/08/12
  • ractor - Documentation for Ruby 3.5

    proxy0721
    proxy0721 2023/03/28
  • library English (Ruby 3.4 リファレンスマニュアル)

    [edit] 要約 特殊変数 $! などに英語名の別名 ($ERROR_INFO など)をつけます。 例: p $/ #=> "\n" p $RS #=> nil require 'English' p $RS #=> "\n" 追加・再定義されるメソッド $ARGV $CHILD_STATUS $DEFAULT_INPUT $DEFAULT_OUTPUT $ERROR_INFO $ERROR_POSITION $FIELD_SEPARATOR $FS $IGNORECASE $INPUT_LINE_NUMBER $INPUT_RECORD_SEPARATOR $LAST_MATCH_INFO $LAST_PAREN_MATCH $LAST_READ_LINE $MATCH $NR $OFS $ORS $OUTPUT_FIELD_SEPARATOR $OUTPUT_RECORD_SEPAR

    proxy0721
    proxy0721 2021/04/27
  • class Fiber (Ruby 4.0 リファレンスマニュアル)

    [edit] 要約 ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。 Thread と違いユーザレベルスレッドとして実装されています。 Thread クラスが表すスレッドと違い、明示的に指定しない限りファイバーのコンテキストは切り替わりません。またファイバーは親子関係を持ちます。Fiber#resume を呼んだファイバーが親になり呼ばれたファイバーが子になります。親子関係を壊すような遷移(例えば自分の親の親のファイバーへ切り替えるような処理)はできません。例外 FiberError が発生します。できることは Fiber#resume により子へコンテキストを切り替える Fiber.yield により親へコンテキストを切り替える の二通りです。この親子関係は一時的なも

    proxy0721
    proxy0721 2020/06/21
  • 1