1. 程式人生 > >註解及多執行緒

註解及多執行緒

註解
自定義註解:
成員型別受限:基本型別及String Class Annotation Enumeration
註解中成員取名為name+()
可以用default為成員指定預設值
內建註解:
override(重寫)
@Depercateed(過時)
@SuppressWaring
元註解:
@Target({ElementType . TYOE,ElementType . METHOD})
多執行緒:
建立執行緒的兩種方式:
繼承Thread類
編寫簡單,可直接操作執行緒,適用於單繼承
實現Runnable介面
避免單繼承的侷限性,便於共享資源
獲取當前執行緒名:
System.out.println(Thread.currentThread().getName()+":"+i);
啟動執行緒 Thread.start
執行緒排程:
void setPriority(int newPriority) 更改執行緒的優先順序
static void sleep(long millis) 在指定的毫秒數內讓當前正在執行的執行緒休眠
void join() 等待該執行緒終止
static void yield () 暫停當前正在執行的執行緒物件,允許其他執行緒執行,
但是該執行緒仍然處於可執行狀態,並不變為阻塞狀態
此時,系統會選擇其他相同或更高優先順序執行緒執行,
如果沒有其他相同或更高優先順序執行緒,該執行緒繼續執行
執行緒狀態:
建立狀態 就緒狀態 執行狀態 阻塞狀態 死亡狀態
執行緒同步:
當兩個或多個執行緒需要訪問同一資源時,
需要以某種順序來確保該資源在某一時刻只能被一個執行緒使用的方式稱為執行緒同步;
採用同步控制執行緒的兩種方式:同步方法和同步程式碼塊 synchronized
執行緒安全型別:執行緒安全 執行緒不安全
Hashtable && HashMap
Hashtable
繼承關係
實現了Map介面,Hashtable繼承Dictionary類
執行緒安全,效率較低
鍵和值都不允許為null
HashMap
繼承關係
實現了Map介面,繼承AbstractMap類
非執行緒安全,效率較高
鍵和值都允許為null