这是一个simpy的学习案例:
- Environment:整体仿真所在的时间,主要用于提取时间。
- Process:仿真过程中的实体或是流程,如:顾客, 设备, 车辆。
import simpy
class Car(object):
def __init__(self, env):
self.env: simpy.Environment = env
self.action = env.process(self.run())
def run(self):
while True:
print('_____----------_____')
print('开始运行:', self.env.now, '需要运行10s')
yield self.env.timeout(10) # 运行10s
print('运行直到:', self.env.now)
yield self.env.process(self.charge()) # 跳转到 charge 函数
def charge(self):
print('开始充电,需要要充电 2s')
yield self.env.timeout(2)
print('充电直到:', self.env.now)
if __name__ == '__main__':
env = simpy.Environment()
car = Car(env)
env.run(until=100)
之前做过django
,写代码的习惯好难改过来,尤其是遇到yield
这个函数,总想放到最后,但这不符合simpy的设计思路,所以慢慢学呗,任重而道远