How do I run C++ and Boost::Python code in parallel without problems?
Eg in my game I'd want to execute Python code in parallel with C++ code; if the embedded Python interpreter's code executes a blocking loop, like while(True): pass
, the C++ code would still be running and processing frames to render with its own loop.
I tried with boost::thread
and std::thread
but unless I joined these threads with the main thread the program would crash...
Any suggestions or examples?
Your idea to use a second thread for the Python interpreter should just work. Make sure you use the PyGILState_Ensure /Release mechanisms everywhere you wish to run code that will invoke any Python or Boost::Python code. You have more details on this other SO thread here .
您需要在python中使用多处理模块,以便为每个python线程获得单独的GIL。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.