简体   繁体   中英

Embedded Boost::Python and C++ : run in parallel

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM