擅长:python、mysql、java
<p>您不应该直接处理回调。最好的做法是使用另一个
为您启动<code>simulation_run()</code>的进程:</p>
<pre><code>import simpy
def simulation_run(env):
print("Starting a run at time [%i]" % env.now)
yield env.timeout(5)
print("Ending a run at time [%i]" % env.now)
def starter(env):
yield env.timeout(5)
env.process(simulation_run(env))
if __name__ == '__main__':
env = simpy.Environment()
env.process(starter(env))
print("Starting simulation.")
env.run(20)
print("End of simulation.")
</code></pre>
<p>因为这是一个相对常见的模式,所以我们在
SimPy就是这样做的:</p>
^{pr2}$
<p>注意:您应该始终将对环境的引用传递到您的流程中
而不是使用全局范围的。这看起来很无聊,但是你
如果以后重新构造或重构代码,可能会遇到任何类型的问题
全球环境不再是你所期望的或者不再可用。在</p>