1. 简述并区分程序、进程和线程三个概念。
程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是在处理机上的一次执行过程,它是一个动态的概念。这个不难理解,其实进程是包含程序的,进程的执行离不开程序,进程中的文本区域就是代码区,也就是程序。
- 进程就是一段程序的执行过程
线程是进程的一个实体,是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但是它可以与同属一个进程的其它线程共享进程所拥有的全部资源
2. 线程有哪几个基本的状态?Java中线程调度遵循何种原则?
线程与进程都是顺序执行的指令序列,但线程和进程不同。对于进程来说,子进程与父进程有不同的代码和数据空间;但是多个线程则共享数据空间,每个线程都有自己的执行堆栈和程序计数器作为其执行的上下文。线程的基本状态有新建、就绪、运行、阻塞、死亡。线程调度安照线程的优先级来调度线程的执行,具有高优先级的线程会在较低优先级的线程之前得到执行。同时线程的调度是抢先式的
3. 实现多线程可以用哪两种基本方法?将这两种方法进行比较。
第一种方法是通过实现Runnable接口实现,第二种方法是通过继承Thread类,
使用Runnable方式可以实现两条线程交替运行(注:不是绝对的交替),而用Thread无法实现
4. 异常是如何抛出、捕捉和处理的?
在java中,提供了一个throw关键字,它用来抛出一个指定的异常
try:该代码块中编写可能产生异常的代码。
catch:用来进行某种异常的捕获,实现对捕获到的异常进行处理
5. 异常处理机制有哪些好处?
第一,当发生错误时,程序不至于崩溃。
第二,当发生错误时,可以在短时间内找到错误所在行,能节省时间