深信服-面经

一,一面面经
1,线程生命周期
在这里插入图片描述new一个线程,新建状态
.start(),运行状态
.wait() .sleep() 阻塞状态
.notify() .notifyAll() 进入runnable状态
.stop() .interrupt()退出线程

2,sleep,wait,yield
sleep:暂停线程,还持有锁
wait:释放锁,等到了等待时间或调用notify方法后,进入可执行状态
yield:当前线程放弃获得的时间片,让位给同优先级的线程。但是随时可以重新获得时间片开始执行。

3,线程交替打印,线程怎么退出?有锁持有
线程通过.stop()可以退出,但非常不建议这样。应该用Interrupt 方式来终止线程,在Run方法内通过try-catch方式捕获InterruptException异常

4,Spring事务,A有事务,B没有。A调用B,是否有事务性
Spring本没有事务,本质还是对数据库事务的支持。结合IOC和AOP,简化了应用程序使用数据库事务的步骤,可以做到对应用程序无侵入的实现事务功能,让用户只关注。通常采用注解方式实现
事务的传播机制:
一般用于事务嵌套的场景,Spring默认的传播机制是PROPAGATION_REQUIRED:如果外层有事务,则当前事务加入外层事务,一块提交,一块回滚。
如果事务A调用非事务B,则B依然没有事务性,因为B都没有在IOC容器中注册

5,操作系统:用户态内核态怎么切换,怎么防止切换

两种指令:

  • 特权指令:只能操作系统使用:启动I/O,内存清零,修改程序状态字 ,设置时钟等等
  • 非特权指令:控制转移,算术运算,取数指令,访管指令(用户态陷入内核态)
    特权级别:
    R0(内核态),R1,R2,R3(用户态)。不同级别能运行不同的指令集合
    状态转换条件:
  • 外设中断:外部设备完成了用户操作,向CPU发射中断信号,CPU暂停执行下一条指令转去执行中断信号对应程序
  • 异常:CPU执行用户态程序,发生了异常,触发由运行进程切换到处理此异常的相关内核程序中,比如缺页异常
  • 陷入机制(访管指令):用户态主动要求切换到内核态,通过系统调用申请使用操作系统的服务,比如线程切换,比如I/O
    怎么防止内核态/用户态切换?
    对于线程切换:
  • 无锁并发编程,少用synchronized这种重锁,加锁,释放锁涉及线程切换
  • CAS乐观锁避免线程切换
  • 使用最少的线程,避免不需要的线程开销
  • 使用协程,单线程内实现任务切换
    对于I/O
    由于I/O设备的操作发生在内核态,减少因为I/O导致的系统调用。一个是设置用户进程缓冲区(new 一个buffer,一次性读取一部分数据),一个是设置内核缓冲区。减少切换次数
    在这里插入图片描述
    6,linux常见指令,怎么写入文件
    top 系统中各个进程资源占用情况
    ps -a 显示所有运行的进程
    free 显示linux 中空闲的,已用的物理内存
    tail 从指定点开始将文件末尾写到标准输出,实时变化的
    du -sh 查看系统中文件使用情况
    df -h 查看磁盘分区大小,已用空间
    find 找文件

7,10亿个url ,5G内存,怎么处理

  • url字符串太长,先对url进行哈希,缩短长度
  • n台服务器共同运行,哈希值对n取模,分散到不同服务器上存储

二,他山之石
1,springboot特性
和spring区别主要是配置更简单,通过starter的依赖简化了应用程序的配置,spring需要配置xml,springboot配置application.propertities更简单。配置web应用程序也只需要一个starter-web依赖即可
2,并发和并行
并发:执行多个任务的能力。一个CPU某一时刻只能干一件事,通过时间片轮转来完成不同进程的任务
并行:同时执行多个任务,压榨多处理器的性能
3,BIO,NIO,AIO区别
BIO:阻塞同步IO,就是需要请求数据时,阻塞等待结果回传
NIO:非阻塞同步IO,循环判断多个客户端有没有数据,有的话处理
AIO:非阻塞异步IO,发送完数据请求就走,通过回调函数拿到结果,期间可以干别的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值