阿里云暑期实习
1.如何定位死锁?
利用jstack等工具获取线程栈,然后定位互相之间的依赖关系,进而找到死锁。
2.报错如何定位?
3.kafka、redis、rocketmq常用场景以及比较?
kafka:适用于高吞吐量的分布式队列,可用于存储长时间保留的大量数据,支持持久化存储。
redis:适用于不需要持久化的短消息队列,速度快并可以容忍一些丢失。
rabbitmq:支持复杂的路由策略,异步。
4.如何查找僵尸进程
可以用ps和grep命令寻找僵尸进程
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
命令选项说明:
-A 参数列出所有进程
-o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数
因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
如果无法kill掉僵尸进程,我们可以kill僵尸进程的父进程
5.算法题:判断两个链表是否合并?(多种方法,以及有多段重合,需要给出时间复杂度)
6.算法题:手写线程安全的hashmap
理想主义的花终将在现实中绽放

浙公网安备 33010602011771号