【问题标题】:what is difference in get() and get_nowait() in stack?堆栈中的 get() 和 get_nowait() 有什么区别?
【发布时间】:2021-08-29 11:15:39
【问题描述】:

我无法找到这两个堆栈函数之间的区别。 get():- 返回元素。 get_nowait() :- 也返回元素。 那么它们有什么不同呢??

【问题讨论】:

    标签: python-3.x stack queue mean-stack dsa


    【解决方案1】:

    不同之处在于一个阻止,另一个不阻止。来自docs

    Queue.get(block=True, timeout=None)

    从队列中删除并返回一个项目。如果可选 args 块为真且超时为无(默认值),则在必要时阻止,直到项目可用。如果 timeout 是一个正数,它最多会阻塞 timeout 秒,如果在那段时间内没有可用的项目,则会引发 Empty 异常。否则(block 为 false),如果一个项目立即可用,则返回一个项目,否则引发 Empty 异常(在这种情况下忽略超时)。

    如果block 参数为TrueQueue.get 将阻塞,直到将元素推入队列或超过给定的超时时间。

    Queue.get_nowait()

    等价于get(False)。

    Queue.get_no_wait() 永远不会阻塞,但如果队列为空,则会返回Queue.Empty

    堆栈实现也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-18
      • 2021-05-10
      • 2020-10-24
      • 2016-01-19
      • 2015-01-15
      • 2011-11-20
      • 2014-07-13
      • 1970-01-01
      相关资源
      最近更新 更多