
simpy是一个基于离散事件的Python方针框架。
官方文档:https://simpy.readthedocs.io/en/latest/
安装
pip install simpy
environment
simpy.Environment.process - 添加仿真进程
simpy.Environment.event - 创建事件
simpy.Environment.timeout - 提供延时(timeout)事件
simpy.Environment.until - 仿真结束的条件(时间或事件)
simpy.Environment.run - 仿真启动
simpy.Environment.all_of
simpy.Environment.any_of
event
Event (env)
Timeout (env,delay,value)
Process (env,generator,Any,Any])
AllOf (env,events)
AnyOf (env,events)
Interrupt (cause)
Resources
Resource (env, capacity)
PriorityResource (env, capacity)
PreemptiveResource (env, capacity)
Container (env, capacity, float] = inf, init, …)
Store (env, capacity, int] = inf)
PriorityStore (env, capacity, int] = inf)
FilterStore (env, capacity, int] = inf)
Exceptions
SimPyException
Interrupt(cause)
第一个例子
# 引入库函数
import simpy
# 任何一个过程都是一个函数,输入参数为env
def clock(env):
while True:
print("开始:", env.now) # env.now获取当前时间
yield env.timeout(1) # 等待1s
print("结束:", env.now) # env.now获取当前时间
# 创建环境并实例化
env = simpy.Environment()
# 启动进程
env.process(clock(env))
# 运行仿真环境
env.run(until=4)
SimPy核心组件
simpy.core.Environment
now
当前模拟时间。
active_process
环境的当前活动进程。
process
创建新的Process的实例 .
timeout
event ( )→ simpy.events.Event
返回新的Event实例。
生成此事件将挂起一个进程,直到另一个进程触发该事件。
all_of (events: Iterable[simpy.events.Event])→ simpy.events.AllOf
any_of (events: Iterable[simpy.events.Event])→ simpy.events.AnyOf
schedule
安排时间优先以及延迟
peek ( )
获取下一个计划事件的时间。如果没有进一步的事件返回Infinity。
step ( )
处理下一个事件。
如果没有其他事件返回EmptySchedule。
run()
执行step()直到满足给定条件
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)