카테고리 없음
2022_10_31 연습 03 package com.ssc.multithread;
0304호
2022. 10. 31. 17:36
Semaphore
package com.ssc.multithread;
import java.util.concurrent.Semaphore;
public class SemaphoreThread extends Thread{
String message;
Semaphore semaphore;
public SemaphoreThread(String message, Semaphore semaphore) {
this.message = message;
this.semaphore = semaphore;
}
@Override
public void run() {
try {
//리소스 확보
semaphore.acquire();
Thread.sleep(10000);
System.out.println(message);
} catch (Exception e) { }
//리소스 해제
semaphore.release();
}
}
package com.ssc.multithread;
import java.util.concurrent.Semaphore;
public class SemaphoreMain {
public static void main(String[] args) {
//2개씩 실행할 수 있는 세마포어
Semaphore semaphore = new Semaphore(2);
Thread th1 = new Thread( new SemaphoreThread("카리나",semaphore));
Thread th2 = new Thread( new SemaphoreThread("지젤",semaphore));
Thread th3 = new Thread( new SemaphoreThread("윈터",semaphore));
Thread th4 = new Thread( new SemaphoreThread("닝닝",semaphore));
th1.start();
th2.start();
th3.start();
th4.start();
}
}