本节书摘来异步社区《Java线程与并发编程实践》一书中的第1章,第1.3节,作者: 【美】Jeff Friesen,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 练习
接下来的练习旨在测试你对第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,之后睡眠100ms。在睡眠了2
s之后,默认主线程应该中断后台线程,此线程在打印出interrupted之后跳出循环。