python面试问题集锦

GIL(全局解释器锁)

  描述Python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。

1.python语言和GIL没有任何关系,GIL不是python语言的特性,仅仅是因为历史原因在Cpython解释器,难以移除GIL

2.GIL:全局解释器锁。每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个线程执行代码

3.Python使用多进程(mutilprocess)代替多线程(threading),可以利用多核的CPU资源的

4.线程释放GIL锁的情况:在IO操作等可能会引起阻塞的系统调用之前,会暂时释放GIL,但在执行完毕之后,会重新获得GIL

5.多线程比单线程爬取有所提升,在遇到IO阻塞的时候会释放GIL,达到多线程爬出的目的。

深拷贝、浅拷贝(copy.copy   copy.deepcopy)

猜你喜欢

转载自www.cnblogs.com/hjl666/p/10534885.html