本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。