python细节1
并发:交替处理多个任务的能力
并行:同时处理多个任务的能力
1. GIL 全局解释器锁
作用:保证同一时刻只有一个线程使用cpu
效果:一个进程中只有一个gil,多个线程需要去抢夺GIl,没有办法真正的使用多个cpu。
注意:GIL存在于cpyhton解释器中的
多线程使用情况:
1 科学计算 单线程比较快
2 i/o操作 多线程比较快
2. 深拷贝和浅拷贝
copy.copy()浅拷贝
copy.deepcopy()深拷贝
在拷贝简单的数据类型 (a = [1,2])
的时候没有区别 都是开辟新的一片空间存储数据
拷贝有嵌套的数据类型
浅拷贝 仅仅是拷贝了引用 没有办法保证数据的独立性
深拷贝 完全拷贝数据 并且开辟空间 保证数据的独立性
拷贝元组(不可变类型的数据)的时候
深拷贝和浅拷贝是一样的 不开辟新的空间 直接引用
如果不可变类型 比如元组中 有可变类型的数据
深拷贝:保证数据的独立性
浅拷贝:直接引用
切片拷贝,字典拷贝都是浅拷贝
3. 私有化
私有属性是通过 名字重整 进行保护的
01 父类中属性名为__名字的,子类不继承,子类不能访问
02 如果在子类中向__名字赋值,那么会在子类中定义的一个与父类相同名字的属性
03 _名的变量、函数、类在使用from xxx import *时都不会被导入
4.import搜索路径:sys.path
模块重写后,需要重新导入,用relode
多模块开发时,用import xxx导入模块
5. 发生多态的条件
1 发生继承
2 子类重写父类方法
3 子类重写的父类方法被调用