Sto provando a testare una DLL C + multi-thread. Questa DLL dovrebbe essere thread-safe. Lo ho avvolto con boost.python, e mi piacerebbe creare più thread python per esercitare la DLL attraverso il wrapper boost.python. Sono in realtà provare per causare problemi di threading.True multithreading con boost.python
Quello che non riesco a trovare una buona documentazione su è se l'interprete python supporterà due dei suoi thread (su core diversi, ad esempio) chiamando in un modulo importato contemporaneamente, e se il GIL ha bisogno di tendersi affatto dato che Non voglio alcuna sicurezza aggiuntiva rispetto a ciò che la DLL dovrebbe fornire.
Qualcuno può descrivermi o farmi riferimento a una descrizione di Python che chiama i moduli DLL da più thread e come si suppone che GIL sia usato in questo caso?
Apparentemente dovrai rilasciare GIL da solo, altrimenti non avrai più di un thread in esecuzione alla volta. Vedi http://stackoverflow.com/questions/1576737/releasing-python-gil-in-c-code – lvella
Si tratta di un duplicato di http://stackoverflow.com/questions/8009613/? –
Una domanda a parte: se non rilascio GIL e il codice C++ chiamato da Python crea un thread, questo thread può chiamare il codice Python in sicurezza o meno. Suppongo che non come spiegherebbe un incidente che ho avuto ... – MatthieuW