Python(或者更确切地说是常用的基于C语言实现的CPython)有一个全局解释器锁(GIL)。当多个线程访问同一块内存时,需要某种形式的锁来同步内存访问,这就是进程内发生的情况。除非你特别分配了这样的内存,否则内存不会在进程之间共享,因此在那里不需要锁。锁的全局性质防止了多个线程在同一进程中运行Python代码。在运行多个进程时,GIL不会干扰。因此,Python代码不能在线程上进行扩展,你需要使用进程来实现。如果你的Python代码大部分都在调用C-API(NumPy / OpenGL等),那么通常会有扩展,因为当本地代码执行时,GIL通常会被释放,因此使用Python管理大多数执行本地代码的线程是可以的(实际上是个好主意)。(还有其他Python解释器实现可以跨线程扩展(例如Jython,IronPython等),但这些并不是主流...但在单线程场景下通常比CPython慢一点。)