Python重点基础总结-面试知识点总结2

提示:作者将用一个系列的博客,总结机器/深度学习算法工程师岗位面试中常见的一些知识点,以帮助小伙伴们更好的应对面试。本系列的内容包括如下:
系列一:机器学习相关基础知识小Tip
系列二:Python基础总结
系列三:CNN相关知识
系列四:Transformer相关知识总结
系列五:经典/热门模型介绍,及深度学习常用知识点
系列六:PyTorch相关知识点及端侧部署基础知识
注:以防再也找不到我,可以收藏博客、关注作者,查看最新内容哦(持续更新中…)


系列二:Python基础总结

1. Python的垃圾回收机制?

在Python中,使用引用计数进行垃圾回收(当某对象的引用计数值为0,那么它的内存就会被立即释放掉);同时通过标记-清除算法解决容器对象可能产生的循环引用问题(标记阶段,遍历所有的对象,如果还有对象引用它,那么就标记该对象为可达;清除阶段,再次遍历对象,如果发现某个对象没有标记为可达,则就将其回收);最后,在循环引用对象的回收中,整个应用程序会被暂停,为了减少应用程序暂停的时间,Python 通过“分代回收”以空间换时间的方法提高垃圾回收效率(对象存在时间越长,越可能不是垃圾,应该越少去收集。这样在执行标记-清除算法时可以有效减小遍历的对象数,从而提高垃圾回收的速度)。

2. 线程、协程、GIL锁相关知识

1)CPU密集型也叫计算密集型,是指I/O在很短时间就可以完成,但CPU需要大量的计算和处理,特点:CPU占用率相当高。如:压缩解压缩,加密解密,正则表达式搜索。
2)I/O密集型指的是系统运作大部分的状况是CPU在等I/O(硬盘/内存)的读/写操作,CPU占用率仍然较低。如:文件处理程序,网络爬虫程序,读写数据程序。
3)多进程Process(可用multiprocessing实现)。优点:同一时刻,可以利用多核CPU并行运算(并行执行)。缺点:占用资源最多,可启动数目比线程少。适用于CPU密集型计算。一个进程可启动N个线程。
4)多线程Thread(threading模块)。优点:相比于进程,更轻量级、占

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值