本节书摘来异步社区《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之后跳出循环。