在这本书“多线程的视觉效果”,我读下面几行: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