首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Simpy 3.0.4,设置资源优先级

Simpy 3.0.4,设置资源优先级
EN

Stack Overflow用户
提问于 2014-05-14 09:51:14
回答 2查看 1.8K关注 0票数 2

我在simpy的资源优先级上遇到了麻烦。考虑以下代码:

代码语言:javascript
复制
import simpy

env = simpy.Environment()
res = simpy.PriorityResource(env, capacity = 1)

def go(id):
    with res.request(priority = id) as req:
        yield req
        print id,res

env.process(go(3))
env.process(go(2))
env.process(go(4))
env.process(go(5))
env.process(go(1))
env.run()

较低的数字意味着更高的优先级,所以我应该得到1,2,3,4,5。但是我得到的是3,1,2,4,5。所以第一个输出是错误的,在它排序之后!

提前谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-14 14:18:21

这是正确的。当"3“请求资源时,它是空的,因此它得到了插槽。剩下的进程必须排队,并按1、2、4、5的顺序获取资源。

如果您转而使用PreemptiveResource (如request(priority=id, preempt=True)),则3仍将首先获得资源,但将被抢占2.2,然后将被1.2抢占,然后3将不得不再次请求资源以获得对它的访问。

票数 3
EN

Stack Overflow用户

发布于 2014-06-01 15:12:35

就连我也遇到了同样的问题,我应该制造一个工厂的FIFO。当时,我给一个部件分配了一个反应时间,并使它遵循前一个部分。这是只有当上一部分已经服务的资源,我提出了下一部分的要求。它客观地解决了问题,但似乎放慢了模拟的速度,也给了部分时间。这基本上是对工厂流程的一次改造。但我想看到一个功能,当部分不需要再次要求。现在的版本能做到吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23651193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档