答案是“是,但是…”
但是当您使用常规线程进行并发时,cpython不能。
您可以使用或之类的东西multiprocessing
,celery
也mpi4py
可以将并行工作拆分为另一个进程。
或者,您可以使用Jython或IronPython之类的东西来使用没有GIL的替代解释器。
一种较软的解决方案是使用不会在GIL上运行的库来执行繁重的cpu任务,例如numpy
可以在不保留GIL的情况下进行繁重的工作,因此可以继续使用其他python线程。您也可以通过ctypes
这种方式使用库。