在這本書「多線程的視覺效果」,我讀下面幾行:Python或串行處理中的多線程?
凡是在Python運行在Python運行的唯一的事情,這意味着,如果你執行的回調都用Python實現,你輸了多少多線程系統的效率提升。
Python解釋器不是線程安全的 - 它不能同時從多個線程運行。需要使用Python的線程必須等待輪到使用解釋器。
爲什麼這句話是真的?
這是必然的想法,即代碼是從C++內部執行的。
static void MyCallback(const Context &context){
Auto<Lock> lock(GetMyMutexFromContext(context));
...
EvalMyPythonString(str); //A function that takes the GIL
...
}
那究竟是什麼意思?我們能否啓動多個口譯員?
閱讀這篇文章:http://programmers.stackexchange.com/questions/186889/why-was-python-written-with-the-gil –
嗯,我理解正確嗎,這隻適用於兩個進程想要與一個python解釋器進行交互嗎? – user1767754