python语言的提高

一、GIL(全局解释器锁)的问题:

1.什么是GIL:

(1).Python语言和GIL没有半毛钱关系。仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL。
(2).GIL:全局解释器锁。每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个线程可以执行代码。
(3).线程释放GIL锁的情况: 在IO操作等可能会引起阻塞的system call之前,可以暂时释放GIL,但在执行完毕后,必须重新获取GIL Python 3.x使用计时器(执行时间达到阈值后,当前线程释放GIL)或Python 2.x,tickets计数达到100
(4).Python使用多进程是可以利用多核的CPU资源的。

(5).多线程爬取比单线程性能有提升,因为遇到IO阻塞会自动释放GIL锁

2.怎样解决GIL问题:

(1).重新设计一个不带GIL的解释器

(2).使用进程来完成多任务

(3).通过C语言的扩展,C语言里的解释器没有问题,可以调用C的解释器来处理多线程

二、面向对象的三大特征是什么?

封装、继承、多态。

1.封装的概念及特点?

封装:顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。 对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。

封装成类的好处:一个是保护隐私,一个是降低程序复杂度,使代码划分更清晰,不需要重复造轮子,封装好了可以直接使用,而不需要重复编写

2.继承的好处:

(1)能够提升代码的重用率,即开发一个类,可以在多个子功能中直接使用

(2)继承能够有效的进行代码的管理,当某个类有问题只要修改这个类就行,而其继承这个类的子类往往不需要就修改

3.多态的特点:

在对象中,一个相同的方法,由于对象的不同,可以得到不同的结果。提升代码的重用率。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值