執行緒中JDK1 5版本後的LOCK用法

2021-06-26 21:40:42 字數 748 閱讀 3273

需求:實現生產者和消費者,兩個生產者兩個消費者

class resource

catch (interruptedexception e1)

finally

/*原因:t1先搶到執行權,判斷falg為假,執行生產列印出"生產6786",然後將flag置為true,t2進行判斷flag為true則停在wait()處放棄資格。t3獲取執行權執行一次消費列印出「消費6786」,

這是正常模式。然後t3將flag置為false,t4進行判斷flag為假則停在wait()處。這個時候t1有可能再次搶到執行權,判斷flag為假,直接進行生產,生產後直接喚醒所有執行緒,

*/

}public void out()throws interruptedexception

catch (interruptedexception e2)

finally

}

}class produce implements runnable

public void run()

catch (interruptedexception e3)

} }}

class custom implements runnable

public void run()

catch (interruptedexception e4)

} }

}class deadlock

}

jdk1 5後更新的可變引數

在jdk1.5之後,如果我們定義乙個方法需要接受多個引數,並且多個引數型別一致,我們可以對其簡化成如下格 式 修飾符 返回值型別 方法名 引數型別 形參名 其實這個書寫完全等價與 修飾符 返回值型別 方法名 引數型別 形參名 只是後面這種定義,在呼叫時必須傳遞陣列,而前者可以直接傳遞資料即可。jdk...

JDK 1 5中新增的語言特性

1 泛型generics 支援引數化型別,安全方便 2 註解annotation inte ce,註解式程式設計 3 列舉enum 增加了enum型別,支援switch 4 變長引數 variable arguments 方法的引數數目可變 5 自動拆裝箱automatic boxing and u...

HashMap的底層實現原理(JDK7版本)

new hashmap 例項化後會在底層建立乙個長度為16的entry table陣列。可能已經執行的put map put key1,value1 首先呼叫key1所在類的hashcode 方法,計算key1的雜湊值,此雜湊值經過某種演算法計算以後,得到在entry陣列中存放的位置 如果此位置上的...