1、进程,线程,协程定义,有什么区别

  进程是操作系统分配资源的最小单位,一个进程对应一块CPU

  线程是进程中的某一个控制单元,是CPU调度的最小单元,线程之间相互独立,进程结束线程也会结束,一个进程至少要有一个线程

  协程是更加轻量级的存在,不是由CPU进程管理而是由程序员管理,在执行一个函数过程中可以中断执行另一个函数,执行一个函数过程就叫协程,python3以前使用yield表示协程,yield关键字一般用于做生成器,实现在函数中暂停的效果,python3.3以后出现yield from后面跟可迭代对象,3.5以后使用async和await实现原生协程。

    区别:

    (1)线程之间切换是由操作系统决定的,切换速度特别快,但是切换频率太高,协程之间切换由程序决定,不会像线程切换那么耗费资源,在高并发下执行效率更高,

  性能更优

    (2)协程中控制共享资源不加锁

    (3)协程使用同步的方式实现异步,在单进程里实现任务切换

2、子进程是什么

  在一个进程中创建开启另一个进程,这个进程称为子进程,即在父进程中创建的进行

3、僵尸进程知道吗

  父进程还在执行,子进程执行完毕后不会立即退出,操作系统会清理内存空间,但是保留进程号(pid),等待父进程清理资源,这个时候子进程成为僵尸进程

4、线程和协程有什么区别

    (1)线程之间切换是由操作系统决定的,切换速度特别快,但是切换频率太高,协程之间切换由程序决定,不会像线程切换那么耗费资源,在高并发下执行

  效率更高,性能更优

    (2)协程中控制共享资源不加锁

    (3)协程使用同步的方式实现异步,在单进程里实现任务切换

5、讲一下字典的实现原理

  字典和集合都是基础哈希表实现的,字典中的key即为集合中的值,所以说集合元素是不重复的。

  字典是以键值对为单位进行存储,在python2之前使用哈希表存储,对字典的key值进行hash,将得到的值作为哈希表的下标,对应的value存入哈希表中下标对应的位置,python3之后使用哈希表加index表,key值hash后的到的值作为index表的下标,找到下标对应的位置存入value值在哈希表的下标,value值在哈希表中顺序存储。

6、哈希函数是什么

  python内置函数hash(),获取一个对象的哈希值

7、哈希表是怎么构成的,哈希冲突怎么解决

  哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

  哈希冲突:不同的key值经过哈希函数得到了相同的值

  解决哈希冲突方法:

  (1)开放定址法(线性探测法、平方探测法、再哈希法)

  (2)拉链法:将对应到同一个地址的键值对存入线性链表中,哈希表地址指向链表

8、知道哪些算法(每个算法的概念,实现逻辑及时间复杂度)

  (1)排序算法(快排,选择,插入,堆排序,冒泡排序,希尔排序,归并排序)

  (2)查找算法(顺序查找,二分法查找,插值查找,斐波那契查找,二叉搜索树,B+树查找,红黑树查找)

  (3)分治法

  (4)贪心算法

  (5)动态规划

9、B+树查找和红黑树查找哪个快,为什么

10、数据库索引原理是什么

  索引相当于书的目录,表数据在没有索引之前是顺序存储,加了索引以后就变成树结构,现在mysql选择的是B+树作为索引结构,B+树只有叶子节点存储关键字以及指向这些关键字的指针,且叶子节点从大到小链接,非终端节点只存储关键字,查询的时候IO渐进复杂度更低。

11、使用原生sql语句怎么删除数据库重复数据

  使用group by及having       https://blog.csdn.net/zzzgd_666/article/details/80718139

12、事务知道吗

  事务是逻辑的一组操作,原子的,不可再分的,事务要么一起成功要么一起失败,事务具有原子性,一致性,隔离性,持久性。

  事务是由一个正确的状态开始到另一个正确的状态,一个会话看不到另一个会话未提交的操作,事务提交后将数据持久化到内存中

13、脏读了解吗 

  脏读指一个会话读到了另一个会话未提交的事务,出现脏读的原因是数据库隔离级别设置过低,数据库隔离级别由读取未提交,读取已提交,可重复读,可串行化,级别由低到高

14、mysql为什么会出现幻读

  幻读指的是一个会话两次读取的数据不一致,多了一些数据,读到了另一个事务新增的数据。

  mysql数据库引擎innodb默认隔离级别为可重复读,加上next_key算法,达到了可串行化的隔离级别,正常来说不会出现幻读,出现幻读可能是在一个事务读取数据时,另一个事务新增了数据并commit,在commit之后之前的事务又执行了update操作,则再次读取会读到之前不存在的数据

15、redis支持哪几种数据类型

  字符串、列表、哈希、集合、可变集合

16、断电以后redis数据可以恢复吗

  redis持久化方式:快照和AOF(append only file)

python面试题整理(二)的更多相关文章

  1. Python面试题整理-更新中

    几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路 ...

  2. python面试题整理

    1.谈谈你对csrf的理解和django中CSRF防护机制. 什么是 CSRF CSRF, Cross Site Request Forgery, 跨站点伪造请求.举例来讲,某个恶意的网站上有一个指向 ...

  3. python面试题(二)字符串常用函数

    今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...

  4. Python面试题(二)【转】

    转载出处http://www.cnblogs.com/goodhacker/p/3387027.html 1.python中类方法.类实例方法.静态方法有何区别? 区别: 类方法和静态方法都可以被类和 ...

  5. Java面试题整理二

    一.io有几种流? 有两种流:字节流和字符流. 字节流继承自inputstream和outstream. 字符流继承自write和read. 二.Jdbc的开发流程? JDBC编程的六个步骤: 1)加 ...

  6. python面试题整理(一)

    python基础:1.列表生成式和生成器表达式有什么区别 我说的是首先写法不一样,列表生成式用[],生成器表达式用(),其次列表生成是一次性生成一个完整的列表,生成器表达式返回的是一个一个的值,占用内 ...

  7. Java面试题整理二(侧重SSH框架)

    1.持久化对象的状态都有哪些? 答:瞬时对象(Transient Objects):使用new 操作符初始化的对象不是立刻就持久的.它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要 ...

  8. Python面试题(二)

    打印九九乘法表 思路:利用字符串的连接,梯形输出结果 >>> def st(num): ... l = [] ... for x in xrange(1, num + 1): ... ...

  9. Java常考面试题整理(二)

    21.Iterator和ListIterator的区别是什么? 参考答案: 下面列出了他们的区别: Iterator可以用来遍历Set和List集合,但是ListIterator只能用来遍历List. ...

随机推荐

  1. 「CF852D」Exploration Plan

    题目描述 给定一张 \(V\) 个点,\(M\) 条边的边带权无向图,有 \(N\) 个人分布在图上的点上,第 \(i\) 个人在 \(x_i\) 这个点上,定义从一个点走到另一个点的时间为所走的路径 ...

  2. C++11并发编程4------线程间共享数据

    举个例子: 刚参加工作的你,只能租房住,嫌房租贵就和别人合租了,两个人住一起只有一个洗手间,每天早上起床的时候,如果你室友在洗手间,你就只能等着,如果你强行进去,那画面就不可描述了.同样的问题,如果多 ...

  3. 笔记||Pyhton3进阶之多线程原理

    # 多线程 # 一个进程相当于一个或多个线程 # 当没有多线程编程时,一个进程也是一个主线程 # 但有多线程编程时,一个进程包含多个线程,包括主线程 # 使用线程 可以实现程序的并发 # python ...

  4. Referenced file contains errors

    Referenced file contains errors (file:/D:/TONG/tong/eclipse/config_/xsd/spring-context-4.2.xsd). For ...

  5. NoNodeAvailableException异常的解决

    Elasticsearch 相关学习,昨天还好好的,今天就出错了!!! 完整异常为 : NoNodeAvailableException[None of the configured nodes ar ...

  6. 如何借助 Python 俘获女孩子芳心?

    责编 | 刘静 天气降温,感情却升温了? 上午刚到公司,就收到小Q发来的灵魂拷问: ​ ​ “Q仔!要不然下午请个假!我带你去精神科看看!?”我实在忍不了,脱口而出. 话音未落,前排的运营小花回头看向 ...

  7. Linux下如何拷贝整个目录下的所有文件

    分类: Linux使用2014-01-14 13:38 1449人阅读 评论(0) 收藏 举报 如何在Linux下拷贝一个目录呢?这好像是再如意不过的问题了.比如要把/home/usera拷贝到/mn ...

  8. VS 项目没有“添加引用”选项

    出问题的环境:vs2017,unity2017unity创建工程后,vs打开项目后,无法添加引用dll,没有“添加引用”项原因: 需要把目标框架改为.

  9. python进阶强化学习

    最近学习了慕课的python进阶强化训练,将学习的内容记录到这里,同时也增加了很多相关知识. 主要分为以下九个模块: 基本使用 迭代器和生成器 字符串 文件IO操作 自定义类和类的继承 函数装饰器和类 ...

  10. flask-Bootstrap Jinja2 原生 模板 和 jumpserver 模板

    #模板 {% block doc -%} <!DOCTYPE html> <html{% block html_attribs %}{% endblock html_attribs ...