C ++异步编程模型的Python包装方法

时间:2015-05-08 21:40:10

标签: python c++ asynchronous ctypes

我需要围绕C ++代码创建一个python包装器,该代码围绕APM model进行了大量建模。我正在研究,但找不到如何在Python中对此进行建模的好方法。我能想到的选择是:

  1. 使用concurrent.futures.Future
    • 它来自3.4,但我希望这个包装器可以用于任何Python版本(包含2.x),也许使用this backported version
    • 我不喜欢APM在timeout电话中定义Begin*,而Future在.result()中定义timeout这一事实
  2. 创建我自己的C ++库,将这些异步调用转换为同步调用
    • 不允许用户在Python中执行花哨的异步内容
    • braindead实施
  3. 使用Twisted的Deferred或类似的库并使用它模拟那些Begin / End
    • 我不希望依赖其他库,如果可能的话
  4. 构建我自己的Future / Deferred类型
    • 我想避免这种情况,所以我可以专注于app逻辑,只需重复使用稳定/可靠的东西
  5. 我缺少的其他东西
  6. 所以,这些都不是完美的,在这一点上,我倾向于接近2,但需要问这里我是否遗漏了一些明显的东西?此外,是否有人知道需要执行此操作的任何其他包装器以及它们如何将其关闭?

0 个答案:

没有答案