随笔分类 -  面试题

上一页 1 2 3 4 5 6 ··· 11 下一页
摘要:code s1='_aai0efe00' res=re.findall('^[a-zA-Z_]?[a-zA-Z0-9_]{1,}\d$',s1) print(res) 阅读全文
posted @ 2020-08-31 23:42 anobscureretreat 阅读(739) 评论(0) 推荐(0) 编辑
摘要:import re pattern = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]') pattern.sub('',text) 阅读全文
posted @ 2020-08-31 23:41 anobscureretreat 阅读(202) 评论(0) 推荐(0) 编辑
摘要:这个问题被问的概念相当之大, 进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单 位,进程拥有自己独立的内存空间,所有进程间数据不共享,开销大。 线程: cpu调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程存在,一个进程至少有一个线 程,叫主线程,而 阅读全文
posted @ 2020-08-31 23:35 anobscureretreat 阅读(247) 评论(0) 推荐(0) 编辑
摘要:线程是非独立的,同一个进程里线程是数据共享的,当各个线程访问数据资源时会出现竞争状态即:数 据几乎同步会被多个线程占用,造成数据混乱,即所谓的线程不安全 那么怎么解决多线程竞争问题? 锁 锁的好处: 确保了某段关键代码(共享数据资源)只能由一个线程从头到尾完整地执行能解决多线程资 源竞争下的原子操作 阅读全文
posted @ 2020-08-31 23:30 anobscureretreat 阅读(373) 评论(0) 推荐(0) 编辑
摘要:锁(Lock)是python提供的对线程控制的对象。有互斥锁,可重入锁,死锁。 阅读全文
posted @ 2020-08-31 23:27 anobscureretreat 阅读(361) 评论(0) 推荐(0) 编辑
摘要:若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿先解锁,互 相干等着,程序无法执行下去,这就是死锁。 GIL锁 全局解释器锁 作用: 限制多线程同时执行,保证同一时间只有一个线程执行,所以cython里的多线程其实是伪多线 程! 所以python里常常使用协程技术来代 阅读全文
posted @ 2020-08-31 23:20 anobscureretreat 阅读(180) 评论(0) 推荐(0) 编辑
摘要:怎么避免重读? 创建一个已访问数据列表,用于存储已经访问过的数据,并加上互斥锁,在多线程访问数据的时候先查 看数据是否在已访问的列表中,若已存在就直接跳过。 阅读全文
posted @ 2020-08-31 23:19 anobscureretreat 阅读(156) 评论(0) 推荐(0) 编辑
摘要:每个对象都对应于一个可称为’互斥锁‘的标记,这个标记用来保证在任一时刻,只能有一个线程访问该 对象。 同一进程中的多线程之间是共享系统资源的,多个线程同时对一个对象进行操作,一个线程操作尚未结 束,另一线程已经对其进行操作,导致最终结果出现错误,此时需要对被操作对象添加互斥锁,保证每 个线程对该对象 阅读全文
posted @ 2020-08-31 23:18 anobscureretreat 阅读(284) 评论(0) 推荐(0) 编辑
摘要:同步: 多个任务之间有先后顺序执行,一个执行完下个才能执行。 异步: 多个任务之间没有先后顺序,可以同时执行,有时候一个任务可能要在必要的时候获取另一个同 时执行的任务的结果,这个就叫回调! 阻塞: 如果卡住了调用者,调用者不能继续往下执行,就是说调用者阻塞了。 非阻塞: 如果不会卡住,可以继续执行 阅读全文
posted @ 2020-08-31 23:13 anobscureretreat 阅读(144) 评论(0) 推荐(0) 编辑
摘要:孤儿进程: 父进程退出,子进程还在运行的这些子进程都是孤儿进程,孤儿进程将被init 进程(进程号 为1)所收养,并由init 进程对他们完成状态收集工作。 僵尸进程: 进程使用fork 创建子进程,如果子进程退出,而父进程并没有调用wait 获waitpid 获取子进 程的状态信息,那么子进程的进 阅读全文
posted @ 2020-08-31 23:11 anobscureretreat 阅读(373) 评论(0) 推荐(0) 编辑
摘要:多进程适合在CPU密集操作(cpu操作指令比较多,如位多的的浮点运算)。 多线程适合在IO密性型操作(读写数据操作比多的的,比如爬虫) 阅读全文
posted @ 2020-08-31 23:08 anobscureretreat 阅读(282) 评论(0) 推荐(0) 编辑
摘要:并行: 同一时刻多个任务同时在运行 并发:不会在同一时刻同时运行,存在交替执行的情况。 实现并行的库有: multiprocessing 实现并发的库有: threading 程序需要执行较多的读写、请求和回复任务的需要大量的IO操作,IO密集型操作使用并发更好。 CPU运算量大的程序,使用并行会更 阅读全文
posted @ 2020-08-31 23:06 anobscureretreat 阅读(930) 评论(0) 推荐(0) 编辑
摘要:IO密集型: 系统运行,大部分的状况是CPU在等 I/O(硬盘/内存)的读/写 CPU密集型: 大部分时间用来做计算,逻辑判断等CPU动作的程序称之CPU密集型。 阅读全文
posted @ 2020-08-31 23:05 anobscureretreat 阅读(1475) 评论(0) 推荐(0) 编辑
摘要:一个客户端运行了新的命令,添加了新的数据。 redis检查内存使用情况,如果大于maxmemory的限制,则根据设定好的策略进行回收。 一个新的命令被执行等等,所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断回收回到 边界以下。 如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保 阅读全文
posted @ 2020-08-31 23:03 anobscureretreat 阅读(671) 评论(0) 推荐(0) 编辑
摘要:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库表中数据。 索引的实现通常使用B树以其变种B+树。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。 为表 阅读全文
posted @ 2020-08-31 23:01 anobscureretreat 阅读(212) 评论(0) 推荐(0) 编辑
摘要:drop直接删掉表,truncate删除表中数据,再插入时自增长id又从1开始,delete删除表中数据,可以加where字句。 1.delete 语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志 中保存以便进行回滚操作。truncate table则一次性地从表中 阅读全文
posted @ 2020-08-31 22:58 anobscureretreat 阅读(145) 评论(0) 推荐(0) 编辑
摘要:Python自带:urllib,urllib2 第三方:requests 框架: Scrapy urllib 和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能。 urllib2: urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象时 阅读全文
posted @ 2020-08-31 22:52 anobscureretreat 阅读(355) 评论(0) 推荐(0) 编辑
摘要:requests, urllib,urllib2, httplib2 阅读全文
posted @ 2020-08-31 22:51 anobscureretreat 阅读(522) 评论(0) 推荐(0) 编辑
摘要:Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但是禁用 Cookie就不能得到Session。 因为Session是用Session ID来确定当前对话所对应的服务器Session,而 Session ID是通过Cookie来传递的,禁用Cookie相 阅读全文
posted @ 2020-08-31 22:50 anobscureretreat 阅读(468) 评论(0) 推荐(0) 编辑
摘要:Django REST framework是一个强大而灵活的Web API工具。使用RESTframework的理由有: Web browsable API对开发者有极大的好处 包括OAuth1a和OAuth2的认证策略 。 支持ORM和非ORM数据资源的序列化 全程自定义开发--如果不想使用更加强 阅读全文
posted @ 2020-08-31 22:49 anobscureretreat 阅读(229) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 11 下一页