這個也是面試題
1.線程創建
通過二種方式:1、繼承Thread類2、實現Runnable接口,實現run方法,並調用start()方法
2.就緒狀態
創建完線程後處於就緒狀態,有執行資格,沒有執行權
3.運行狀態
獲取cpu的執行權,執行代碼
4.阻塞狀態
有執行資格但是沒有獲取執行權,或者使用wait()等方法,釋放鎖並處於阻塞狀態,需要通過notify激活後才能獲取到就緒狀態,等待執行權
5.死亡
當執行完run方法後,中斷線程死亡等回收
這個也是面試題
1.線程創建
通過二種方式:1、繼承Thread類2、實現Runnable接口,實現run方法,並調用start()方法
2.就緒狀態
創建完線程後處於就緒狀態,有執行資格,沒有執行權
3.運行狀態
獲取cpu的執行權,執行代碼
4.阻塞狀態
有執行資格但是沒有獲取執行權,或者使用wait()等方法,釋放鎖並處於阻塞狀態,需要通過notify激活後才能獲取到就緒狀態,等待執行權
5.死亡
當執行完run方法後,中斷線程死亡等回收
ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM