java第八章问答题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.何为线程和多线程?如何建立多线程?

答:线程:是一个程序内部的顺序控制流

两种方式,第一种继承Thread,第二种实现Runnable

2.线程的生命周期由哪几种状态?各状态之间分别用哪些方法切换?

答:新建、就绪、运行、阻塞、死亡五种状态。

1、线程通过new方法创建,调用start,线程进入就绪状态,等待系统的调度(时间

片轮转调度)。当系统调度,进入运行状态。正常结束或者异常退出,进程进入死亡状态。

2、处于运行状态的线程若遇到sleep,则线程进入睡眠状态,不会让出资源锁,sleep

结束,线程转为就绪状态,等待系统重新调度。

3、处于运行状态的线程可能在等待io,也可能进入挂起状态。io完成,转为就绪状态。

4、处于运行状态的线程yield,线程转为就绪状态。(yield只让给权限比自己高的)

5、处于运行状态的线程遇到wait,线程处于等待状态,需要notify()/notifyALL来

唤醒线程,唤醒后的线程处于锁定状态,获取了“同步锁”,之后,线程才转为就绪状态。处于运行的线程synchronized,加上后变成同步操作。处于锁定状态,获取了“同步锁”,之后,线程才转为就绪状态。

3.Java程序实现多线程有哪些途径?

•答:1.继承Thread类,重写run方法

• 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类

• 3.通过Callable和FutureTask创建线程的实例对象作为Thread构造函数的taget

4.通过线程池创建线程

相关文档
最新文档