多线程与异常处理

1. 简述并区分程序、进程和线程三个概念。

    程序是为完成特定任务、用某种语言编写的一组指令的集合。指一段静态的代码。

进程是程序的一次执行过程,是系统进行调度和资源分配的一个独立单位。

    线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索。每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。一个线程有它自己的入口和出口,以及一个顺序执行的序列线程不能独立存在,必须存在于进程中。

2. 线程有哪几个基本的状态?Java中线程调度遵循何种原则?

   答:线程与进程都是顺序执行的指令序列,但线程和进程不同。对于进程来说,子进程与父进程有不同的代码和数据空间;但是多个线程则共享数据空间,每个线程都有自己的执行堆栈和程序计数器作为其执行的上下文。线程的基本状态有新建、就绪、运行、阻塞、死亡。线程调度安照线程的优先级来调度线程的执行,具有高优先级的线程会在较低优先级的线程之前得到执行。同时线程的调度是抢先式的。

3. 实现多线程可以用哪两种基本方法?将这两种方法进行比较。

答:第一种方法是通过实现Runnable接口实现,第二种方法是通过继承Thread类,

使用Runnable方式可以实现两条线程交替运行(注:不是绝对的交替),而用Thread无法实现

4. 异常是如何抛出、捕捉和处理的?

答:在可能会出现exception的地方,要使用try-catch或者throws或者两者都要。我的判断依据是:如果对可能出现的exception不想被外部(方法的调用者)知道,就在方法内部try-catch掉这个exception;如果希望外部知道,则在catch到之后把exception直接抛出或者抛出自定义的exception。  

扫描二维码关注公众号,回复: 2186534 查看本文章

    处理意外的一个重要原则,就是要么处理,要么接着抛,决不能吃掉(You either handle it, or throw it. You don’t eat it.)这就是说,当你捕获一个异常之后,必须决定是否立即处理这个异常,或者继续抛出这个异常(或者另一个自定义异常),以便由调用的客户端捕获之。当客户端捕获到以后,又会继续进行类似的判断。

5. 异常处理机制有哪些好处

    答:第一,当发生错误时,程序不至于崩溃。

第二,当发生错误时,可以在短时间内找到错误所在行,能节省时间。

 


猜你喜欢

转载自blog.csdn.net/qq_38855717/article/details/80955424