本節書摘來異步社群《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之後跳出循環。