JDK5新特性之執行緒同步工具類(三)

2022-09-23 11:42:13 字數 569 閱讀 8517

一. semaphore實現訊號燈

semaphore可以控制同時訪問資源的執行緒個數, 例如: 實現乙個檔案允許的併發訪問數.

semaphore實現的功能就類似廁所有5個坑, 加入有十個人要上廁所, 那麼同時只能有5個人能夠占用, 當5個人中的任何乙個人離開後, 其中在等待的另外5個人中就有乙個可以占用了. 另外等待的5個人中可以是隨機獲得優先機會,

也可以使按照先來後到的順序獲得機會, 這取決於構造semaphore物件時傳入的引數選項.

/*** semaphore:訊號燈

*/public class semaphoretest catch (interruptedexception e)

}});

} }}單個semaphore物件可以實現互斥鎖的功能, 並且可以是由乙個執行緒獲得了"鎖", 再由另乙個執行緒釋放"鎖", 這可應用於死鎖恢復的一些場合.

public class cyclicbarriertest catch (exception e)

}});

} service.shutdown();

}}

JDK5新特性 列舉

一些程式在執行時,他需要的資料不能是任意的,而必須是一定範圍內的值,jdk5以前採用自定義類來解決,jdk5以後可以直接採用列舉解決。在jdk5之後,使用enum關鍵字定義一種新的型別,稱為列舉型別。enum類和enum關鍵字 使用enum關鍵字定義的列舉類,實際上就相當於定義了乙個類,此類繼承了e...

JDK5新特性之執行緒鎖技術(二)

一.lock實現執行緒同步互斥 lock比傳統執行緒模型中的synchronized方式更加物件導向,與生活中的鎖類似,鎖本身也是乙個物件。兩個執行緒執行的 片段要實現同步互斥的效果,他們必須用同乙個lock物件。鎖是上在代表要操作的資源的類的內部方法中,而不是執行緒 中。public class ...

JDK5的新特性可變引數

package cn.itcast 06 可變引數 在定義方法的時候我不知道定義多少個元素 格式 修飾符 返回值型別 方法名 資料型別.變數名 注意 這裡的變數是乙個陣列 如果乙個方法有可變引數,並且有多個引數,那麼,可變引數一定是最後乙個 因為可變引數前面的依次賦值,剩下的全部給可變引數 publ...