1

我有一个资源集合。传入进程将需要一组资源。例如,假设我在集合中有资源 A、B、C 和 D,并且出现了一个请求资源 A、B 和 D 的进程;我希望该过程停止,直到 A、B 和 D 可用。

这当然是一个微不足道的例子。我想知道是否可以生成 Resource.request() 事件列表,然后使用 yield 和 '&' 或其他方法等到所有事件都被授予(即所有事件都被触发)。

这就是我正在做的事情......

req1 = A.request()
req2 = B.request()
req3 = D.request()
yield req1 & req2 & req3

这就是我想做的事情......

list_of_resources_needed = [A,B,D]
req_list = []
for r in list_of_resources_needed:
    req_list.append(r.request())
yield * All events in req_list *
4

1 回答 1

0

您可以使用提供快捷方式的AllOfAnyOf事件:http: //simpy.readthedocs.org/en/latest/api_reference/simpy.core.html#simpy.core.Environment.all_ofEnvironment

于 2015-04-02T13:58:12.617 回答