2017-06-07 47 views
-1

我想创建一个简单的python web服务器来公开我的C++应用程序的一些功能。从c + +开始多线程python代码

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

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

为web服务器使用python线程尽快初始化完成后停止服务器。如何给python解释器留出时间来进行线程处理?


老解释

如果我创建的网络服务器(例如,使用的CherryPy),它也很容易从浏览器中调用C++函数...什么是它缺少的是,C++应用程序被锁定。我的想法是使用python线程,但从测试是python代码锁定时,直到另一个python代码被称为(任何python代码)。

所以我的结论是,我需要的C++应用程序的事件管理(MFC应用程序)

它是这样一个最佳实践过程中给予一定的时间来Python解释器中?有这样的API函数吗?

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

再一次:这种工作的最佳实践是什么?

+0

请不要询问您的解决方案。描述你正试图解决的问题。你根本没有做过体面的工作。 – IInspectable

+0

@IInspectable我修改了我的问题....但如果你说我做得不好,请加上一个动机,这样我可以提出一个更好的问题。 – Antonio

+0

当您提供给您时,您可能应该参加[巡演]。请特别阅读[问]。该更新没有做任何事情来澄清问题。当您不知道MFC,C++或Windows API时,我们无法帮助您编写MFC代码。这些类型的问题通常不会收集有价值的帮助。 – IInspectable

回答

0

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