세마포어는 동시에 엑세스할 수 있는 쓰레드 풀을 제한합니다. 다중 쓰레드에서 하나의 자원에 접근할 때 세마포어는 허용된 Concurrent 갯수 이상은 대기하도록 하고 처리가 완료되면 완료된 쓰레드 개수만큼 다음 쓰레드가 실행되도록 할 수 있습니다. //세파포어 선언 private static Semaphore _resourcePool; //한번에 허용할 수 있는 최대 쓰레드 수 private static int _maximumThreads = 3; [TestMethod] public void Semaphore_TestMethod() { //세마포어를 할당한다. //초기 실행 가능한 쓰레드는 0 //최대 실행 가능한 쓰레드는 3 _resourcePool = new Semaphore(0, _maximumT..