Python GIL的问题
2016-11-20
喝牛奶的鸵鸟
python的GIL问题导致python同时只能解释一个线程,下面举例说明:
多进程测试:
运行结果如下,可以看到有两个核跑满了:
多线程测试:
运行结果如下,可以看到没有一个核跑满,只是切换线程执行:
解决方法:
由于GIL的存在,不能同时解释多个线程,那么可以让python解释器解释主线程,别的线程可以是静态编译型语言编译后的动态链接库,这样就可以充分利用多核了。
运行结果如下,此时可以发现多线程和多进程一样有两个核跑满了: