阿里云暑期实习

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

 

posted @ 2023-02-22 12:04  lyjps  阅读(32)  评论(0)    收藏  举报