[基本機能]セマフォ

アプリケーション開発において、マルチスレッドで限られたリソースにアクセスする際に、同期制御を行う必要があります。
このように、限られたリソースに排他的にアクセスする機構をセマフォと呼びます。

セマフォ機能を抽象化したインタフェースがSemaphoreです。

関連するパッケージは、以下です。

アプリケーション向けインタフェース Semaphore

アプリケーション向けインタフェースSemaphoreを使った簡単なアプリケーションのサンプルを示します。

  1. import jp.ossc.nimbus.core.ServiceManagerFactory;
  2. import jp.ossc.nimbus.service.semaphore.Semaphore;
  3. // Semaphoreを取得
  4. final Semaphore semaphore = (Semaphore)ServiceManagerFactory.getServiceObject("Semaphore");
  5. try{
  6. // セマフォを獲得する
  7. if(semaphore.getResource()){
  8. // 正常処理をする
  9. }else{
  10. // リソース不足のためエラー処理をする
  11. }
  12. }finally{
  13. // セマフォを開放する
  14. semaphore.freeResource();
  15. }

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.queue.DefaultSemaphoreServiceSemaphoreのデフォルト実装サービス