- Когда вы получаете элемент очереди (с
yield
), FilterStore возвращает элемент.Кроме того, вы можете использовать dict для именования элементов.
Давайте создадим 3 парикмахера:
barberNames = ['Baber A', 'Baber B', 'Baber C']
barberList = [simpy.Resource(env, capacity=1) for i in range(3)]
barberDict = dict(zip(barberNames , barberList))
Теперь создайте FilterStore для BarberShop:
barberStore = simpy.FilterStore(env, capacity=3)
barberStore.items = barberNames
Если одному клиенту нашего BarberShop не нужен конкретный парикмахер, мы просто можем выбрать парикмахера из созданного магазина:
clientBarber = yield barbeariaStore.get()
Если вы напечатаете clientBarber
, вы увидите егоимя (как в barberNames)
В этом случае наш клиент хочет определенного парикмахера.
Предположим, что ему нужен «Парикмахер А»:
preferBarber = yield barbeariaStore.get(lambda barber : barber == 'Barber A')
Теперь предпочитаем, чтобы Барбер хранил «Парикмахера А».