java小知識點7
阿新 • • 發佈:2017-05-19
ima 需要 art ges strong mina ava tail rmi
進程:每個進程擁有自己的一整套變量
線程:共享數據
調用Thread.sleep不會創建一個新的線程,sleep是Thread類的靜態方法,用於暫停當前線程。
定義線程建議通過Runnable接口,繼承Thread無法繼承其它的類。
線程的stop方法已經被棄用。請求線程終止,使用interrupt方法
如果線程正在運行,調用interrupt方法,中斷狀態置位
線程被阻塞,調用interrupt方法,拋出InterruptException
線程狀態:
- new
- runnable
- blocking
- waiting
- timed waiting
- terminated
新創建狀態:
Thread對象剛被實例化
可運行線程:
調用start方法後,線程處於runnable方法。可運行的線程可能正在運行,也可能沒有運行,取決於時間片分配
阻塞狀態和等待狀態:
被終止:
- run方法正常退出
- 一個沒有捕獲的異常
線程屬性
線程優先級1-10,高度依賴操作系統
守護線程為其它線程提供服務,當虛擬機中只剩下守護線程,虛擬機退出。守護線程不應該訪問固有資源,因為它在任意時刻發生中斷。
線程的run方法不能拋出任何必檢異常
在java多線程程序中,所有線程都不允許拋出未捕獲的checked exception(比如sleep時的InterruptedException),也就是說各個線程需要自己把自己的checked exception處理掉。
捕獲線程逃逸的異常:http://blog.csdn.net/u010853261/article/details/61419677
java小知識點7