Ironpython可以用来并行运行多个Python虚拟机实例吗?

时间:2010-07-13 14:01:21

标签: python ironpython

从游戏GunTactyx中启发,在那里编写控制战斗机器人的程序。 Guntactyx使用Small语言,后来称为Pawn。

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

我担心的是:

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

  2. 糟糕的节目。系统应该 容忍无限循环或 崩溃。我想每个虚拟 机器给予X刻度 一次执行。

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

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

  5. 我想以这种“伪”的方式结束一些事情。

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

1 个答案:

答案 0 :(得分:1)

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

  1. 您可以在使用scope.SetVariable运行变量/函数之前将其注入脚本的范围。

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

  3. 我不确定能否轻松执行。如果您在不同的AppDomain或进程中运行脚本,这可能是可能的,但这是为了获得最小收益而进行的大量额外工作。

  4. 请问!