随笔分类 - 面试准备
摘要:Cpython和GIL GIL, Global Interpreter Lock Cpython解释器的内存管理并不是线程安全的 保护多线程情况下对python对象的访问 Cpython解释器使用简单的琐机制避免多个线程同时访问字节码(python是把源文件编译成字节码去执行的) 所以就造成了在一个
阅读全文
摘要:什么是分页机制? 定义:逻辑地址和物理地址分离的内存分配管理方案 程序逻辑地址划分为固定大小的页(Page) 物理地址划分为同样大小的帧(Frame) 通过页表对应逻辑地址和物理地址 分段机制 目的: 分段是为了满足代码的逻辑需求(更具体的建议去搜索下) 数据共享,数据保护,动态链接等。 通过段表实
阅读全文
摘要:进程和线程的区别 进程是对运行时程序的封装,是系统资源调度和分配的基本单位 线程是进程的子任务,cpu调度和分配的基本单位,实现进程内并发。 一个进程可以包含多个线程,线程依赖进程存在,并共享进程内存 什么是线程安全 一个线程的修改被另一个线程的修改覆盖掉。 python中哪些操作是线程安全的 一个
阅读全文
摘要:首先是常见状态码 https://www.runoob.com/http/http-status-codes.html GET 和 POST 的区别 Restful语义上一个是获取, 一个是创建。 GET是幂等的, POST是非幂等的。 GET请求参数放到url(明文)里,有长度限制; POST放在
阅读全文
摘要:什么是前后端分离? 什么是REStful? 什么是前后端分离? 优势是什么? 后端只负责提供数据接口,不再渲染模版,前端获取数据并呈现。 前后端解藕,接口复用(前端和客户端公用接口 ), 减少开发量。 前后端各司其职,同步开发,提升工作效率。定义好接口规范。 更方便调试(mock)、测试和运维部署。
阅读全文
摘要:写在前面:以一个python后台的角度来看 1 dns -> 2 tcp握手 -> 3 HTTP请求 -> 4 反向代理nginx -> 5 uwsgi/gunicorn -> 6 web app响应 -> tcp挥手 1: 其实进行dns查询之前会首先查看网址是不是在dns缓存里面, 如果不在dn
阅读全文
摘要:列表推导和生成器(可以节省大量内存)
阅读全文
摘要:所谓mokey patch就是运行时替换 比如gevent库需要修改内置的socket from gevent import monkey; mokey.patch_socket() 这样就把内置的阻塞的 socket替换成非阻塞的socket 看代码
阅读全文
摘要:“如果我们看到一只鸟走起来像鸭子,游泳起来像鸭子,叫起来也像鸭子,那么这只鸟就可以被称之为鸭子。” 关注点在于对象的行为, 而非类型(duck typing) 比如file,StringIO, socket对象都支持read/wtite方法(file like object)。 再比如定义了__it
阅读全文
摘要:死锁产生的必要条件(必须都满足): 互斥条件 : 进程对资源的使用是排他性的使用。 请求保持条件 :1. 进程至少保持一个资源, 又提出新的资源请求。 2. 新的资源被占用,请求被阻塞。 3. 被阻塞的资源又不释放自己保持的资源。 不可剥夺条件 :1. 进程获得的资源在未使用完成前不能被剥夺 2.
阅读全文
摘要:就绪: 1. 当程序被分配到除cpu以外所有必要资源后 阻塞 执行 创建 终止 1. 进程结束由系统清理或者归还PCB的状态称为终止状态。 状态之间的切换
阅读全文