nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
アプリケーション開発において、マルチスレッドで限られたリソースにアクセスする際に、同期制御を行う必要があります。
このように、限られたリソースに排他的にアクセスする機構をセマフォと呼びます。
セマフォ機能を抽象化したインタフェースがSemaphoreです。
関連するパッケージは、以下です。
アプリケーション向けインタフェースSemaphoreを使った簡単なアプリケーションのサンプルを示します。
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.semaphore.Semaphore;
- // Semaphoreを取得
- final Semaphore semaphore = (Semaphore)ServiceManagerFactory.getServiceObject("Semaphore");
- try{
- // セマフォを獲得する
- if(semaphore.getResource()){
- // 正常処理をする
- :
- }else{
- // リソース不足のためエラー処理をする
- :
- }
- }finally{
- // セマフォを開放する
- semaphore.freeResource();
- }
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.queue.DefaultSemaphoreService | Semaphoreのデフォルト実装サービス |