首页 > 解决方案 > Python Simpy:并行使用两个资源

问题描述

问候 StackOverflow 社区!

我对 Python 中的 SimPy 框架有疑问:

这是一个非常简单的代码示例,用于汽车不断到达充电站并在两个可用充电点之一充电然后再次离开。其他到达的汽车将等到充电点再次空闲:

import simpy 
env = simpy.Environment()
bcs = simpy.Resource(env, capacity = 2)


def car(env, name, bcs, driving_time, charge_duration):
    yield env.timeout(driving_time)

    print('%s arriving at %d' % (name, env.now))
    with bcs.request() as req:
        yield req

        print('%s starting to charge at %s' % (name, env.now))
        yield env.timeout(charge_duration)
        print('%s leaving the bcs at %s' % (name, env.now))

for i in range(10):
    env.process(car(env, 'Car %d' % i, bcs, i*2, 5))

env.run()

我现在的问题是:如果我有两个充电站,每个充电站都有一个充电点怎么办。所以仍然会有两个充电点,但是来自两个资源。(例如,这样做的目标是拥有两个充电站,它们的充电时间不同。)

我不太确定,如何启动它。基本上我得到了两个资源:

bcs1 = simpy.Resource(env, 1)
bcs2 = simpy.Resource(env, 1)

提前致谢!

标签: pythonsimpy

解决方案


推荐阅读