python面试题总结

一、list实现方式

list就是一种采用分离式技术实现的动态顺序表。在建立空表时,系统分配一块能容纳8个元素的存储区;在执行插入操作(insert或append)时,如果元素存储区满就换一块4倍大的存储区。但如果此时的表已经很大(目前的阀值为50000),则改变策略,采用加一倍的方法。

二、import一个包的过程

每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包。

import语句主要是做了二件事:

  1. 查找相应的module
  2. 加载module到local namespace

如果模块没有被找到,则按照如下路径进行搜索:

如果module没有被找到,则按照下面的搜索路径查找模块:

  1. .py 所在文件的目录
  2. PYTHONPATH 中的目录
  3. python安装目录,UNIX下,默认路径一般为/usr/local/lib/python/
  4. 3.x 中.pth 文件内容

三、GIL

GIL锁,Global Interpreter Lock,任何Python线程执行前,必须先获得GIL锁,然后,每执行100条字节码,解释器就自动释放GIL锁,让别的线程有机会执行。这个GIL全局锁实际上把所有线程的执行代码都给上了锁,所以,多线程在Python中只能交替执行,即使100个线程跑在100核CPU上,也只能用到1个核。

Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核。Python虽然不能利用多线程实现多核任务,但可以通过多进程实现多核任务。

转载于:https://www.cnblogs.com/kingshine007/p/11565101.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值