在SimPy进程中调用函数

-1 投票
1 回答
568 浏览
提问于 2025-04-18 03:32

我正在尝试用Python和SimPy写一个进程通信的程序。如果我把所有代码放在一个函数里,然后调用

simpy.Environment().process(function_one())

一切都运行得很好。但是,如果我在function_one()里面调用另一个函数,比如

def function_one(self):
  function_two()

那么function_two就不会被执行。如果我这样调用它

def function_one(self):
  simpy.Environment().process(function_two())

那么function_two会被执行,但这时function_one的其余部分会继续执行,而不会等function_two执行完。我显然不想把所有代码都放在一个函数里,所以希望能得到一些帮助。

1 个回答

1

传给 process() 的函数必须是生成器函数,并且要能产生事件实例。此外,你还需要调用 Environment.run() 来真正执行模拟。为了开始使用 SimPy,你应该阅读这个教程

撰写回答