让我们直接从代码开始入手:
import salabim as sim
class CustomerGenerator(sim.Component):
def process(self):
print(env.main().scheduled_time())
while 1:
Customer()
yield self.hold(sim.Uniform(5,15).sample())
class Customer(sim.Component):
def process(self):
self.enter(waitingline)
for clerk in clerks:
if clerk.ispassive():
clerk.activate()
yield self.passivate()
class Clerk(sim.Component):
def process(self):
while 1:
while len(waitingline) == 0:
yield self.passivate()
self.customer = waitingline.pop()
yield self.hold(30)
self.customer.activate()
env = sim.Environment(trace=True)
CustomerGenerator()
clerks = [Clerk() for _ in range(3)]
waitingline = sim.Queue('waitingline')
env.run(till=5000)
waitingline.print_histograms()
waitingline.print_info()
这是一个银行中事件处理的例子,我们