728x90
반응형
자바에서 여러 스레드 간에 안전하게 값을 증가시키는 메소드를 만들어야 할 때가 있습니다. 이를 위해 AtomicInteger나 synchronized 키워드를 사용할 수 있습니다.
1. AtomicInteger 사용하기
AtomicInteger는 원자적 연산을 지원하여 여러 스레드 간에 안전하게 값을 증가시킬 수 있습니다. 아래는 AtomicInteger를 사용하여 max + 1 값을 생성하는 메소드의 예시입니다.
import java.util.concurrent.atomic.AtomicInteger;
public class ConcurrentUtils {
private static AtomicInteger max = new AtomicInteger(0);
public static int generateMaxPlusOne() {
return max.incrementAndGet();
}
}
2. synchronized 키워드 사용하기
synchronized 키워드를 사용하면 메소드나 특정 블록을 한 번에 하나의 스레드만 실행하도록 보호할 수 있습니다. 아래는 synchronized 키워드를 사용하여 max + 1 값을 생성하는 메소드의 예시입니다.
public class ConcurrentUtils {
private static int max = 0;
public synchronized static int generateMaxPlusOne() {
return ++max;
}
}
어떤 방법을 선택하시든, 이러한 메소드는 여러 스레드에서 안전하게 호출할 수 있습니다.
728x90
반응형
'공부는 평생하는 것이다' 카테고리의 다른 글
[IT] 인프라 공부하기 (인프라,네트워크) (0) | 2022.11.05 |
---|