1、为什么产生了GIL锁?
在python设计的年代,都是单核CPU,因为进程程是CPU是分配资源的最小单位,所以不会有数据操作混乱的问题。
随计算机的发展,出现了多核CPU, pyhton为了利用多核的优势,开始支持多线程,解决多线程之间的数据完整性、状态同步就是加锁, 所以产生了GIL锁
GIL锁是python的全局解释性锁, 同一个进程中假设有多个线程运行, 其中一个线程会独占python解释器(GIL),使得其他线程无法运行,等该线程运行完成后其他线程才能运行
所以在多线程中,线程的执行仍然是有先后顺序的,并不是同时进行的(python的特点)
2、如何解决GIL?
GIL最大的问题就是python的多线程程序并不能利用多核的优势(比如一个使用了多个线程的计算密集型程序只会在一个单CPU上执行)
2.1 如果是完全的python环境,使用multiprocessing
| 1 | # Processing pool (see below for initiazation) | 
2. 另外一个方式,引入C扩展编程技术
| 1 | 
 | 
__END__
