字节跳动 后端研发实习生 面试题目总结(转载) (4)

2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

mysql****隔离级别

读未提交:这种隔离级别下,事务间完全不隔离,会产生脏读,可以读取未提交的记录,实际情况下不会使用。

不可重复读(读提交):本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果(不重复读)

可重复读:在同一个事务里,SELECT的结果是事务开始时时间点的状态,因此,同一个事务同样的SELECT操作读到的结果会是一致的。但是,会有幻读现象

串行化:读操作会隐式获取共享锁,可以保证不同事务间的互斥

TCP/UDP

有状态连接和无状态连接

进程之间的通信方式

TCP报文中的字段

操作系统内核态与用户态

用户态--->内核态:唯一途径是通过中断、异常、陷入机制(访管指令)

内核态--->用户态:设置程序状态字PSW

特权指令:只能由操作系统使用、用户程序不能使用的指令。  举例:启动I/O 内存清零  修改程序状态字  设置时钟    允许/禁止终端   停机

非特权指令:用户程序可以使用的指令。  举例:控制转移  算数运算  取数指令   访管指令(使用户程序从用户态陷入内核态)

处于用户态执行时,进程所能访问的内存空间和对象受到限制,其所处于占有的处理机是可被抢占的 ;

而处于核心态执行中的进程,则能访问所有的内存空间和对象,且所占有的处理机是不允许被抢占的。

这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。

HTTP和TCP的关系

TCP是传输层,而http是应用层今天学习了下,知道了 http是要基于TCP连接基础上的,简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。http是用来收发数据,即实际应用上来的。

进程间通信和线程间通信的区别

进程在unix上,使用的是管道和信号灯来传递信息。

线程通过共享的全局数据去来进行通讯就可以了。

乐观锁和悲观锁

滑动窗口

TCP server最多可以建立多少个TCP连接

TCP流量控制和拥塞控制

PYTHON 可变类型和不可变类型

Python的每个对象都分为可变和不可变,主要的核心类型中,数字、字符串、元组是不可变的,列表、字典是可变的。

对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。

linux查看内存

sudo atop

ps

socket编程

一个进程,有十个线程,其中一个线程fork后,子进程有几个线程

在fork多线程的进程时,创建的子进程只包含一个线程,该线程是调用fork函数的那个线程的副本

链表翻转

TCP序列号的作用

保证传输的顺序,你要传输的所有数据的每一个字节都要编号。这个序号称为字节序号

建堆的时间复杂度

为什么要对网络分层

协议如何封装  报文头部字段

快速排序和时间复杂度

二叉树的层次遍历

int 1234变成4321如何实现

数据库ACID代表什么

数据库分页如何实现

哈希表由哪些数据结构实现

get****和post

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpfsz.html