说明
下面是多线程面试题的总结,后续碰到重点的新题型会不断继续更新。
一、基本概念
多线程有什么用?
单核:比如一个线程使用的时候CPU计算,IO空闲,IO操作时候CPU空闲,当CPU空闲时,执行另一个线程IO操作对方迟迟没有返回,这时CPU就空闲,而用户阻塞。为了防止阻塞,我们开启多线程。这样提高CPU利用率。
多核,提高CPU利用率,多核分别执行多个线程。比如一个复杂任务,让多核并行,提高效率。
**问题:**内存泄漏、上下文切换、死锁还有受限于硬件和软件的资源闲置问题。
线程、进程、协程的区别
进程:是系统分配资源都基本单元,有独立的内存空间 比如一个迅雷应用程序,既不共享堆,亦不共享栈。一个进程中至少有一个线程。
线程: ,线程是操作系统调度的最小单元线程拥有自己独立的栈和共享的堆,共享堆,不共享栈比如为在迅雷程序中开启多个下载任务下载就是多线程。如果只有单个线程,那么我们就只能下载一个任务