Skip to main content
 首页 » 编程设计

python之Ironpython 可以用于并行运行多个 Python 虚拟机实例吗

2025年05月04日10lidabo

灵感来自游戏GunTactyx ,您可以在其中编写控制战斗机器人的程序。 Guntactyx 使用的是 Small 语言,后来被称为 Pawn。

我正在研究使用 Python 作为脚本语言。

我的担忧是:

  1. 与 C# 脚本的接口(interface) 应该通过接口(interface)进入 C# 简单的功能,做类似的事情 扫描敌人,旋转和 射击。我想每个功能都应该 被延迟,所以他们需要 x ms 返回。

  2. 糟糕的程序。系统应该 容忍无限循环或 崩溃。我想每一个虚拟 机器被赋予 X ticks 一次执行。

  3. 有限的内存使用脚本 不应该被允许使用 无限制使用。我想要一些 有点上限。

  4. 可能还有很多其他问题

我想以这种“伪”风格结束。

robots = a list of robots 
 
while(1) 
   foreach robot in robots 
      robot.tick() 
   gameworld.update() 

请您参考如下方法:

您的主题问题的答案是是,您可以并行运行多个解释器。通常每个脚本都会在自己的 ScriptScope 中运行,但如果需要,您也可以使用独立的 ScriptEngine。

  1. 您可以在使用 scope.SetVariable 运行脚本之前将变量/函数注入(inject)到脚本的作用域中。

  2. 最好的办法是在单独的线程上运行 Python 代码并观察它;如果返回时间太长,则中断线程。 (这很难做对,但那是另一个问题)

  3. 我不确定是否可以轻松执行。如果您在不同的 AppDomain 或进程中运行脚本,这可能是可行的,但这样做需要做很多额外的工作, yield 却微乎其微。

  4. 尽管问!