【问题标题】:simpy source code request superclasssimpy 源代码请求超类
【发布时间】:2017-05-05 17:44:48
【问题描述】:

我正在阅读 simpy 源代码,发现由于某种原因,RequestPut 类的子类。是否有一个原因?我认为请求是从资源中获取某些内容的请求,而不是将某些内容放入其中的请求?

【问题讨论】:

    标签: simpy


    【解决方案1】:

    这背后的想法/抽象是,Resource 有一个“用户令牌的架子”。如果用户想要使用资源,他们会尝试将其令牌放入到资源中。他们使用资源,直到他们移除令牌。

    如果货架已经满了,新用户必须等到他们可以将他们的代币放入其中。

    【讨论】:

    • 感谢@stefan 的回复,我对 resource.request() 和普通 get 事件之间的 get/put 差异感到困惑。我使用了在没有上下文管理器的情况下执行resource.get()resource.put() 的模拟,在这种情况下resource.get() 似乎允许我从资源中获取一些东西(它会创建一个Get() 事件?)我在此页面上的文档中发现最后一个示例似乎也表明 put() 将某些内容放入资源中,get() 从中获取了一些内容:simpy.readthedocs.io/en/latest/topical_guides/resources.html
    • 另外,我遇​​到了这个问题,因为我试图在创建 Get() 事件时访问它并向它添加回调。当您执行resource.get() 时,它似乎只是将其添加到获取队列(或资源的放置队列?)而没有首先实现获取事件。您将如何向 get 事件添加回调?你必须通过说resource.put_queue[-1].callbacks.append(xxx)来访问它吗?不能先把get事件赋值给变量吗?
    猜你喜欢
    • 2017-11-17
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    相关资源
    最近更新 更多