我有一系列资源。传入的进程需要一组资源。例如,假设我在集合中有资源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 *
答案 0 :(得分:0)
您可以使用AllOf
或AnyOf
事件,Environment
提供了快捷方式:http://simpy.readthedocs.org/en/latest/api_reference/simpy.core.html#simpy.core.Environment.all_of