当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Queue.close用法及代码示例


本文简要介绍ruby语言中 Thread::Queue.close 的用法。

用法

close

关闭队列。已关闭的队列无法重新打开。

调用 close 完成后,以下情况属实:

  • closed? 将返回 true

  • close 将被忽略。

  • 调用 enq/push/<< 将引发 ClosedQueueError

  • empty? 为假时,调用 deq/pop/shift 将照常从队列中返回一个对象。

  • empty? 为真时,deq(false) 不会挂起线程并返回 nil。 deq(true) 将引发 ThreadError

ClosedQueueError 继承自 StopIteration ,因此您可以中断循环块。

例子:

q = Thread::Queue.new
Thread.new{
  while e = q.deq # wait for nil to break loop
    # ...
  end
}
q.close

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Queue.close。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。