从c ++启动多线程python代码

时间:2017-06-07 08:16:43

标签: python c++ multithreading mfc

我想创建一个简单的python web服务器来公开我的c ++应用程序的一些功能。

我已经嵌入了python,我可以调用python代码并回调c ++函数进行交互。

我的问题是能够在不锁定应用程序的情况下运行网络服务器。

使用python线程为Web服务器在初始化完成后立即停止服务器。如何给python解释器留出时间继续进行线程处理?

旧解释

如果我创建了web服务器(例如使用cherrypy),那么从浏览器调用c ++函数也很容易......缺少的是c ++应用程序被锁定。我的想法是使用一个python线程,但是从test开始是python代码,直到调用另一个python代码(任何python代码)。

所以我的结论是我需要在c ++应用程序(MFC应用程序)的事件管理期间给python解释器一些时间

这是最好的做法吗?这样做有一些API函数吗?

其他解决方案是创建一个c ++线程并使用PyThread*函数启动解释器......但我担心的是GIL锁定GUI应用程序。

再次说明:这类工作的最佳做​​法是什么?

1 个答案:

答案 0 :(得分:0)

如果你使用套接字,通常你需要选择select-vs-multi-threading。选择模式会阻止你的应用,但首先要确保你需要它。