程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java線程練習題

java線程練習題

編輯:關於JAVA

(1) 從Thread繼承一個類,並(過載)覆蓋run()方法。在run()內,打印出一條消息,然後調用sleep()。重復三遍這些操作,然後從run()返回。在構建器中放置一條啟動消息,並覆蓋finalize(),打印一條關閉消息。創建一個獨立的線程類,使它在run()內調用System.gc()和System.runFinalization(),並打印一條消息,表明調用成功。創建這兩種類型的幾個線程,然後運行它們,看看會發生什麼。
(2) 修改Counter2.java,使線程成為一個內部類,而且不需要明確保存指向Counter2的一個。
(3) 修改Sharing2.java,在TwoCounter的run()方法內部添加一個synchronized(同步)塊,而不是同步整個run()方法。
(4) 創建兩個Thread子類,第一個的run()方法用於最開始的啟動,並捕獲第二個Thread對象的句柄,然後調用wait()。第二個類的run()應在過幾秒後為第一個線程調用modifyAll(),使第一個線程能打印出一條消息。
(5) 在Ticker2內的Counter5.java中,刪除yield(),並解釋一下結果。用一個sleep()換掉yield(),再解釋一下結果。
(6) 在ThreadGroup1.java中,將對sys.suspend()的調用換成對線程組的一個wait()調用,令其等候2秒鐘。為了保證獲得正確的結果,必須在一個同步塊內取得sys的對象鎖。
(7) 修改Daemons.java,使main()有一個sleep(),而不是一個readLine()。實驗不同的睡眠時間,看看會有什麼發生。
(8) 到第7章(中間部分)找到那個GreenhouseControls.java例子,它應該由三個文件構成。在Event.java中,Event類建立在對時間的監視基礎上。修改這個Event,使其成為一個線程。然後修改其余的設計,使它們能與新的、以線程為基礎的Event正常協作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved