本文简要介绍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 Queue.new用法及代码示例
- Ruby Queue closed?用法及代码示例
- Ruby Queue close()用法及代码示例
- Ruby Queue deq()用法及代码示例
- Ruby Queue enq()用法及代码示例
- Ruby Queue clear()用法及代码示例
- Ruby Queue new()用法及代码示例
- Ruby Queue size()用法及代码示例
- Ruby Queue empty?用法及代码示例
- Ruby Queue pop()用法及代码示例
- Ruby Queue shift()用法及代码示例
- Ruby Queue length()用法及代码示例
- Ruby Queue类用法及代码示例
- Ruby Queue push()用法及代码示例
- Ruby QueryExtension.read_multipart用法及代码示例
- Ruby Time tv_sec用法及代码示例
- Ruby MatchData.pre_match用法及代码示例
- Ruby Symbol capitalize用法及代码示例
- Ruby Matrix lup()用法及代码示例
- Ruby SizedQueue clear()用法及代码示例
- Ruby Object.instance_variable_get用法及代码示例
- Ruby Spotter.spot_op_asgn2_for_name用法及代码示例
- Ruby Float arg()用法及代码示例
- Ruby WIN32OLE_METHOD#visible?用法及代码示例
- Ruby Matrix unitary?()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Queue.close。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。