第一题:线程的基本概念、线程的基本状态及状态之间的关系?
在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量;
概念:有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号);
四种状态:就绪状态、运行状态、阻塞状态、结束状态
调用线程的start方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到同步语句[I/O阻塞等]时,由运行状态转为阻塞,当同步语句获得锁后,由阻塞转为运行,在这种情况可以调用wait方法转为阻塞状态,当线程关联的代码执行完后,线程变为结束状态。
第二题:进程和线程区别
线程与进程的区别可以归纳为以下4点:
1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
3)调度和切换:线程上下文切换比进程上下文切换要快得多。
4)在多线程OS中,进程不是一个可执行的实体。
同时系统引入线程的好处:
1)创建一个新线程花费的时间少。
2)两个线程(在同一进程中的)的切换时间少。
3)由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。
4)线程能独立执行,能充分利用和发挥处理机与外围设备并行工作的能力