Python Simpy:并行使用两个资源

2024-06-25 23:53:02 发布

您现在位置:Python中文网/ 问答频道 /正文

欢迎来到我们的社区

关于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)

提前谢谢


Tags: nameenvtimecarnowresourceatduration