2017-06-07 46 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。選擇模式會阻止您的應用程序,但首先請確保這是您的需要。