天天看点

《Java线程与并发编程实践》—— 1.3 练习

本节书摘来异步社区《java线程与并发编程实践》一书中的第1章,第1.3节,作者: 【美】jeff friesen,更多章节内容可以访问云栖社区“异步社区”公众号查看。

接下来的练习旨在测试你对第1章内容的掌握程度。

1.给出线程的定义。

2.给出runnable的定义。

3.thread类和runnable接口完成了什么?

4.指出创建一个runnable对象的两种方式。

5.指出关联一个runnable到一个thread对象的两种方式。

6.指出5种thread的状态。

7.判断对错:默认线程的名字会以thd-作为前缀。

8.如何给线程赋予非默认的名称?

9.如何确定线程是死是活?

10.指出thread.state枚举的所有常量。

11.如何获取当前线程的执行状态?

12.给出优先级的定义。

13.如何通过setpriority()来影响应用程序跨操作系统的可移植性?

14.确定thread的void setpriority(int priority)方法参数的取值范围。

15.判断对错:当应用程序的最后一个非守护线程死亡之后,守护线程也会自动死亡以使得应用程序退出。

16.在一个正在运行或者已经死亡的thread对象上调用thread的void start()方法会发生什么?

17.如何在windows上停止一个无法终止的程序?

18.确定组成thread中断机制的所有方法。

19.判断对错:boolean isinterrupted()方法清除了线程的中断状态。

20.当线程中断了,该线程会如何反映?

21.给出忙循环的定义。

22.指出让一条线程等待另一个线程直至死亡的thread方法。

23.指出让一条线程睡眠的thread方法。

24.编写一个名为intsleep的应用程序,其创建一条后台线程,不断地打印出hello,之后睡眠100<code>ms。在睡眠了2</code>s之后,默认主线程应该中断后台线程,此线程在打印出interrupted之后跳出循环。