セマフォセマフォは、マルチスレッドアプリケーションでは、特定のリソースへの同時アクセスを制御するための操作回数又は操作の指定された数は、同時に実行され、また、リソースプールの限界または境界を実装するために使用することができるが、容器に適用されます。簡単に言えば、セマフォが強化されたバージョンに同期され、同時実行スレッド数を制御することができます。
同時アクセス数を制御する方法
パブリッククラスDemoSemaphore { 允许1个线程访问只同时表示#1、3则表示3个 プライベートセマフォセマフォ=新しいセマフォ(3)。 公共ボイドのexec(){ {みてください )(semaphore.acquire。 スレッドID =にThread.currentThread()の長さのgetId()。 System.out.println(スレッドIDが+ "を取得"); 長いランド=(ロング)(Math.random()* 1000); Thread.sleep(RAND)。 System.out.println(スレッドID + "終了")。 }キャッチ(InterruptedExceptionある電子){ e.printStackTrace(); }最後に{ semaphore.release()。 } } パブリック静的無効メイン(文字列[] args){ DemoSemaphoreデモ=新しいDemoSemaphore(); 以下のために(int型私= 0;私++; iの30 <){ )(新しいスレッド(デモ::幹部).startを。 } } }
。