Skip to main content

Posts

Showing posts with the label Semaphore

Semaphore in java

A  Semaphore  is a thread synchronization mechanism that can be used - To send signals between threads To guard a critical section for enforcing limited access to the resource Semaphore in java come with java 1.5 and available under package "java.util.concurrent"  Below is an example which you can go through to understand how we can enforce a limited number of thread to access a particular section of code at a time. import java.util.concurrent.Semaphore; public class SemaphoreExample { Semaphore semaphore = new Semaphore(2); private void printLock() { try { semaphore.acquire(); System.out.println("Lock acquired by "+Thread.currentThread().getName()); System.out.println("Locks remaining "+semaphore.availablePermits()); Thread.sleep(5000); } catch (InterruptedException ie) { ie.printStackTrace(); } finally { semaphore.release(); System.out.println("Locks release "+Thread.cur...