一、线程从哪蹦出来的?
我们已经知道进程的引入使多个程序可以并发执行,提高了CPU利用率,但是进程内的效率也需要一种机制来提高。参考多进程思想,在一个进程中引入多个线程,来提高进程的效率。
二、线程的特长?
- 特长:多个线程在同一个进程中,共享这个进程的内存,但是每个线程也有自己独立的内存,可以独立调度运行。由于多个线程共享进程中的内存,不像多个进程之间内存是完全独立的,所以同一进程之间多个线程的信息同步的代价非常小。另外,还可以将一个进程中的不同线程分配到多个cpu,这是进程无法做到的。
- 特长概括下来就是:共享进程资源、拥有独立资源、调度的基本单位、支持并发、系统开销小。
- 简单来说就是:线程就是一个“微型进程”,减少了各方面的开销。
三、线程有几种状态?
- 就绪:线程已准备就绪,但需竞争到CPU才可执行
- 执行:正在运行
- 阻塞:遇到I/O操作,需要让出cpu给其他线程,这种就叫阻塞,也可以理解为等待。
四、线程多了好办事?
- 线程池:虽说人多好办事,但太多了也坏事啊,线程过多会带来调度开销,进而影响整体性能。而线程池提前将一定数量的线程创建好放进池子中,进程需要时就从池子中取,用完了再还回来。这避免了在处理短时间任务时创建与销毁线程的代价。
- 并发问题:多个线程共享同一进程的内存,每个线程中都有进程中共享变量的副本,需保证副本和进程中共享变量保持一致。