inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

AtomicIntegerGetAndUpdateExample 예시가 부자연스럽습니다.

152

할수있다!!

작성한 질문수 1

0

AtomicInteger의 getAndUpdate가 람다를 적용하기 전의 값을 반환하므로,

해당 메소드의 반환 값을 출금 후 잔고가 아니고, 출금 전 잔고로 표현하는 것이 의미가 맞습니다.

 

추가로 출금 전의 잔고가 출금액 보다 작아야 잔고 부족으로 출금이 실패한다고 표현해야 자연스러운 것 같습니다.

 

해당 예시를 다음과 같이 수정했습니다.

// main function
for (int i = 0; i < 5; i++) {
    new Thread(() -> {
        int withdrawalAmount = 500; // 출금액
        
        int beforeUpdatedBalance = accountBalance.getAndUpdate(balance -> {

            if (balance >= withdrawalAmount) {
                return balance - withdrawalAmount; // 출금 성공
            } else {
                return balance; // 출금 실패
            }
        });

        if (beforeUpdatedBalance < withdrawalAmount) {
            System.out.println(Thread.currentThread().getName() + " : 잔고 부족으로 출금 실패");
        } else {
            System.out.println(Thread.currentThread().getName() + " : 출금 전 잔고: " + beforeUpdatedBalance);
        }
    }).start();
}

 

강의 잘 듣고 있습니다. 감사합니다 🙂

java 동시성 multithread synchronisation

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
할수있다님, 지금 질문하신 내용은 프로그래밍 정보 자료가 아니기 때문에 제공된 정보로는 답을 드릴 수 없습니다.
다른 프로그래밍 관련 질문이 있다면 언제든지 도와드리겠습니다. 감사합니다 🙂

멀티스레드 단일스레드

0

56

0

new Condition 부분 질문

0

81

1

13:00 강의 내용 이해 질문

0

99

1

강의 출시 질문 있습니다.

0

115

1

InterruptedExceptionThreadStopExample 질문입니다.

0

94

2

instance.getMyField()의 값이 왜 다른가요?

0

115

1

해당 강의 내용 무단 도용 신고

0

211

2

Thread Waiting 상태 관련 질문 드립니다.

0

183

1

단일연산변수 api

0

125

0

synchronized 블럭과 메인메모리 반영

0

146

0

실무에서 자바가 제공하는 락을 사용하는 경우

1

243

1

뮤텍스나 세마포어는 busy waiting이 없는 게 맞을까요?

0

159

1

16:50부분에서 타입락 질문드립니다.

0

110

2

16분 7초 뮤텍스 코드 관련해 질문드립니다.

0

160

2

동기화가 보장된다고 하더라도 스레드간 데이터 불일치가 발생할 수 있지 않나요??

0

199

2

리액티브-part2

0

180

2

문자열 풀 값을 이용한 String 변수

0

207

2

스레드 라이브러리는 커널과 같은 역할을 하지 못하나요?

0

173

1

자식 프로세스를 쓰는 이유

0

186

1

커널 모드 전환시 질문이 있습니다!

0

146

1

[공유] setName 시 threadName이 1부터 시작하는 이유

0

177

1

synchronized = 모니터

0

285

2

Thread의 Context Switching 문의드립니다.

1

256

1

동기 & 논블록킹 질문 드립니다.

0

232

2