本文簡要介紹ruby語言中 Ractor.yield
的用法。
用法
yield(msg, move: false) → nil
向當前 ractor 的傳出端口發送一條消息以供 take
使用。
r = Ractor.new {Ractor.yield 'Hello from ractor'}
puts r.take
# Prints: "Hello from ractor"
該方法是阻塞的,隻有當有人消費了發送的消息時才會返回。
r = Ractor.new do
Ractor.yield 'Hello from ractor'
puts "Ractor: after yield"
end
wait
puts "Still not taken"
puts r.take
這將打印:
Still not taken Hello from ractor Ractor: after yield
如果傳出端口用 close_outgoing
關閉,該方法將引發:
r = Ractor.new do
close_outgoing
Ractor.yield 'Hello from ractor'
end
wait
# `yield': The outgoing-port is already closed (Ractor::ClosedError)
move
參數的含義與 send
相同。
相關用法
- Ruby Ractor.receive_if用法及代碼示例
- Ruby Ractor.close_incoming用法及代碼示例
- Ruby Ractor.count用法及代碼示例
- Ruby Ractor.shareable?用法及代碼示例
- Ruby Ractor.current用法及代碼示例
- Ruby Ractor.new用法及代碼示例
- Ruby Ractor.receive用法及代碼示例
- Ruby Ractor.close_outgoing用法及代碼示例
- Ruby Ractor.send用法及代碼示例
- Ruby Ractor.take用法及代碼示例
- Ruby Ractor.make_shareable用法及代碼示例
- Ruby Ractor.select用法及代碼示例
- Ruby Ractor類用法及代碼示例
- Ruby Racc模塊用法及代碼示例
- Ruby Range.end用法及代碼示例
- Ruby Range new()用法及代碼示例
- Ruby Rational.inspect用法及代碼示例
- Ruby Random.bytes用法及代碼示例
- Ruby Random hex()用法及代碼示例
- Ruby Range.size用法及代碼示例
- Ruby Rational.rational <=>用法及代碼示例
- Ruby Rational to_i()用法及代碼示例
- Ruby Rational.rat ** numeric用法及代碼示例
- Ruby Random random_number()用法及代碼示例
- Ruby Range last()用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Ractor.yield。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。