程序员新视界面试题(含详细接地气答案).docxVIP

  • 1
  • 0
  • 约4.66千字
  • 约 7页
  • 2026-08-15 发布于河北
  • 举报

程序员新视界面试题(含详细接地气答案).docx

程序员新视界面试题(含详细接地气答案)

一、计算机基础核心(必考基础)

1、进程和线程的区别?开发中怎么选择使用?

详细答案:

进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位。一个进程可以包含多个线程,线程共享进程的内存、文件句柄等资源,线程之间切换开销极小,进程切换开销很大。

实际开发落地区别:

1)稳定性:进程相互独立,一个进程崩溃不影响其他进程;单进程内一个线程异常,大概率会挂掉整个进程。

2)开销:新建进程需要分配独立内存空间,耗时耗资源;新建线程几乎只需要创建栈空间,成本极低。

3)通信:进程间通信复杂(管道、socket、共享内存);线程直接共享全局变量、堆内存,通信简单但要处理线程安全问题。

使用场景:

多任务隔离、高稳定性场景用多进程,比如服务主从架构、独立任务分片;高频并发、轻量任务处理用多线程,比如接口请求处理、异步任务回调。

2、什么是死锁?开发中如何快速规避?

详细答案:

死锁就是多个线程互相持有对方需要的锁,又不释放自己的锁,导致所有线程永久阻塞,程序卡死。死锁必须同时满足四个条件:互斥、占有且等待、不可抢占、循环等待。

日常开发不用死磕理论,重点是规避手段:

1)统一加锁顺序:所有线程必须按固定顺序获取多把锁,从根源杜绝循环等待,这是最常用、最高效的方式。

2)设置锁超时:不用永久等待锁,使用tryLock设置超时时间,获取失败直接放弃或

文档评论(0)

1亿VIP精品文档

相关文档