title: Python & C/C++ multithreading : run several threads executing python in the background of C
body: <p>I have a really specific need : 
  I want to create a python console with a Qt Widget, and to be able to have several independent interpreters.
  Now let me try to explain where are my problems and all tries I did, in order of the ones I'd most like to make working to those I can use by default</p>
  
  <ul>
  <li><p>The first point is that all functions in the Python C API (PyRun[...], PyEval[...] ...) need the GIL locked, that forbid any concurrent code interpretations from C ( or I'd be really glad to be wrong !!! :D )</p></li>
  <li><p>Therefore, I tried another approach than the "usual way" : I made a loop in python that call read() on my special file and eval the result. This function (implemented as a built extension) blocks until there is data to read. (Actually, it's currently a while in C code rather than a pthread based condition)
  Then, with PyRun_simpleString(), I launch my loop in another thread. This is where the problem is : my read function, in addition to block the current thread (that is totally normal), it blocks the whole interpreter, and PyRun_simpleString() doesn't return...</p></li>
  <li><p>Finally I've this last idea which risks to be relatively slow : To have a dedicated thread in C++ which run the interpreter, and do every thing in python to manage input/output. This could be a loop which creates the jobs when there is a console needing to execute a command. Seems not to be really hard to do, but I prefer ask you : is there a way to make the above possibilities to work, or is there another way I didn't think about or is my last idea the best ?</p></li>
  </ul>