心态大炸,一二面都特别顺,但可能也正是这种特别顺让我没有好好地去准备和复习。
最近拖延和焦虑并发,特此记录,希望早日找回状态~
三面
聊简历
- 之前实习的是客户端,为什么想做服务端开发?
这个回答我之前准备过很多遍,但今天太紧张了没答的很好!紧张害人呜呜呜
下次说:
①从业务的角度来说,前端侧重拿到数据并且展示,而后端侧重数据的处理,更多核心的逻辑都是在后端的,是对业务有更深入理解的
②从技术的角度来说,后端涉及的计算机知识面更广,比如系统、网络、数据库的这整个体系,无论从广度还是深度来讲上升空间都更大
操作系统
- 进程和线程的区别是什么?
- 进程是资源分配的基本单位,这些资源包括什么?
答案:给进程分配一定的内存空间;为每个进程维护一个文件描述符表,同一个进程内的线程共用一个文件描述符表
我傻了多说了临界资源…… - 为什么你认为临界资源是以进程为单位分配的?什么是临界资源?
答:临界资源就是需要互斥访问的资源。线程之间也有互斥的问题,应该是以线程为单位分配的…… - 在system programming或者Java中用过哪些具体实现互斥的工具?
答:我先答了java的synchronized,然后嘴欠说了c++的条件变量,实际上我根本没复习过条件变量一片空白。。真的下次不要瞎说。。后悔死了。。 - c++的条件变量有哪些用法,需要传入哪些参数
参考:
https://blog.youkuaiyun.com/bandaoyu/article/details/108601761
https://blog.youkuaiyun.com/boiled_water123/article/details/101021602
答案:
条件变量必须要和互斥锁一起使用,这是为了避免在竞争状态下的问题
为什么要与pthread_mutex 一起使用呢? 这是为了应对 线程1在调用pthread_cond_wait()但线程1还没有进入wait cond的状态的时候,此时线程2调用了 cond_singal 的情况。 如果不用mutex锁的话,这个cond_singal就丢失了。
加了锁的情况是,线程2必须等到 mutex 被释放(也就是 pthread_cod_wait() 释放锁并进入wait_cond状态 ,此时线程2上锁) 的时候才能调用cond_singal.
数据库
- 用过哪些索引
- 主键和唯一索引的区别是什么?
我扯了聚簇索引和非聚簇索引。。抠出三室一厅
答:https://blog.youkuaiyun.com/qixiang2013/article/details/120779758
1 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
2 主键创建后一定包含一个唯一性索引,唯一性索引不一定就是主键。
3 唯一性索引列允许空值, 而主键列不允许为空值。
4 主键可以被其他表引用为外键,而唯一索引不能。
5 一个表最多只能创建一个主键,但是可以创建多个唯一索引。
- 你创建过什么索引?你这个语句创建的是什么索引?
CREATE [UNIQUE | FULLTEXT] INDEX 索引名
ON 表名(列名[(length)] [ASC | DESC],…)
说明:
●索引名:索引的名称,索引名在一个表中名称必须是唯一的。
● 列名:表示创建索引的列名。
length表示使用列的前length个字符创建索引。使用列的一部分创建索引可以使索引文件大大减小,从而节省磁盘空间。BLOB或TEXT列必须用前缀索引。
● UNIQUE:UNIQUE表示创建的是唯一性索引
● FULLTEXT:FULLTEXT表示创建全文索引;
● CREATE INDEX 语句并不能创建主键。 - 在外键上键索引是合适的吗?
反问环节
我前面几个问题问的还可以,最后一个实在太社死了。。。