每日面经(2021.6.5)阿里

阿里巴巴

提取自:https://www.nowcoder.com/discuss/631598?type=all&order=time&pos=&page=1&channel=-1&source_id=search_all_nctrack

top K

在这里插入图片描述

HTTP1.0 1.1 区别

1.加入了长连接(持久连接):一个请求去请求浏览器的11个对象,所有的请求及相应都由相同的TCP连接发送,后续只要任意一端没有明确提出断开连接,则保持连接一直存在

2.使用了管道网络传输:客户端可以发起多个请求不用等待前一个请求返回后在发送,减少了整体的相应时间

3。采用了队头阻塞:采用对头阻塞解决管道网络传输中的顺序问题,及前一个请求因为某某种原因阻塞后面的请求一并阻塞

4.新增加了一写错误状态码:如409请求的资源与当前资源冲突,410服务器上的某个资源被永久删除

5.增加了缓存

扩展Http2.0

  1. 进行了头部压缩:减少了冗余部分,采取的是HPACK算法。两方维护一个头部信息的索引表
  2. 采用二进制格式传输:头部信息和数据体采用二进制,并且统称为帧。对计算机友好
  3. 采用数据流:HTTP/2的数据包不是按顺序发送的,同一个连接里面连续的数据包可能属于不同的回应,必须要对数据包做标记,指出它属于那个回应。每个请求和回应的数据包成为数据流。客户端发出的数据流编号位奇数,服务端为偶数,还可以设置优先级
  4. 采用了多路复用的机制:一个 连接中的并发多个请求或回应,而不用按照顺序一一对应
  5. 服务器推送:主动向客户端发送消息,减少等待时间(比如客户端请求HTTP页面,可以将可能用到的JS,CSS文件提前退送给客户端)

死锁的条件 如何避免

死锁的条件

  1. 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求该资源,则请求者只能等待,直至占有该资源 的进程用毕释放。
  2. 请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。
  3. 不可剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
  4. 环路等待条件:在发生死锁时,必然存在一个进程——资源的环形链。

如何避免

只要破坏其中一个条件就不会产生死锁

①破坏“请求和保持”条件:破坏请求:系统规定所有进程在开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源。破坏保持:分配资源时,只要有一种资源不能满足某进程的要求,即使其它所需的各资源都空闲,也不分配给该进程,而让该进程等待。

②破坏“不可抢占”条件:当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请。

③破坏“循环等待”条件:系统将所有资源按类型进行线性排队,并赋予不同的序号(mysql中使用了这种方法)

项目用到了哪些锁 答的读写锁,互斥量,问为什么要有读写锁?

可以防止脏读和幻读,以及读到未提交数据

select poll epoll 原理 (后续补充)

项目

说一下linux文件系统

Linux 中的各种事物比如像文档、目录(Mac OS X 和 Windows 系统下称之为文件夹)、键盘、监视器、硬盘、可移动媒体设备、打印机、调制解调器、虚拟终端,还有进程间通信(IPC)和网络通信等输入/输出资源都是定义在文件系统空间下的字节流。
一切都可看作是文件,其最显著的好处是对于上面所列出的输入/输出资源,只需要相同的一套 Linux 工具、实用程序和 API。你可以使用同一套api(read, write)和工具(cat , 重定向, 管道)来处理unix中大多数的资源.

gdb调试会吗,怎么调试多线程的程序(info threads,thread ID,然后打断点)

项目代码量多少

7000行

平时看了什么的源码

框架:spring

hashmap,可重入锁,unsafe类,等

设计模式会吗

会,了解一些设计模式如:单例模式,工厂模式,代理模式,原型模式等

10T数据,出现数字随机,如何统计每个数字出现的次数…(当时讲的归并,后面想想通过哈希实现更好?)

https://www.cnblogs.com/itxiaok/archive/2019/02/15/10385676.html这篇文章不错

leetcode 做了多少题(实话实说)

100题左右,牛客80多,leetcode20多

先上升后下降的数组 找最大值(二分)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值