天天看點

《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之後跳出循環。