临近秋招,整理了一下前段时间找实习时被问过的高频八股(多为互联网大厂)+一些自己的补充。这些只是最基础最基础必须全文背诵的八股!答案很简略,基本都是自己的理解,如有勘误还请指出,虚心改正。
一、进程、线程的区别?
-
根本区别:进程是资源分配的单位;线程是调度执行的单位
-
从属关系不同:进程包含线程
-
开销不同:进程创建、销毁、切换的开销都远大于线程
-
CPU利用率不同:进程开销大,因此CPU利用率低
-
拥有资源不同:每个进程有自己的内存和资源,一个进程中的线程共享这些内存和资源
-
控制和影响能力不同:子进程无法影响父进程,但子线程可以影响父线程;若主线程异常,会影响其所在进程和子线程
-
操纵者不同:进程操纵者一般是OS;线程操纵者一般是编程人员
二、死锁概念、原因、解决方法?
死锁:两个或两个以上进程因其中每个进程都在等其他进程做完某些事而不能继续执行。
原因:1. 系统资源不足;2. 进程次序不合理;3. 资源分配不当
死锁4个条件:1. 互斥;2. 占有且等待; 3. 不可抢