인프런 커뮤니티 질문&답변
서버가 이중화인 경우
작성
·
303
0
안녕하세요. synchronized, cas 등 동시성 이슈를 해결하는 기법들인데, 서버가 한대인 경우에 한해서만 위 기법들이 적용될 것 같은데요. 제가 생각한게 맞을까요?
서버를 여러 개로 실행하는 경우 DB 자체에 락을 걸고 사용해야 하나요?
퀴즈
56%나 틀려요. 한번 도전해보세요!
CAS(Compare and Swap)의 주요 원리는 무엇일까요?
스레드가 공유 자원에 접근하기 전에 락을 획득하여 다른 스레드의 접근을 막는 것입니다.
메모리의 현재 값과 예상 값을 비교하여 같으면 새 값으로 원자적으로 교체하는 것입니다.
여러 스레드가 동시에 작업을 완료할 때까지 특정 지점에서 대기하는 것입니다.
다른 스레드의 작업 완료를 기다렸다가 다음 단계로 진행하는 것입니다.
답변 1
0
정수원
지식공유자
네 맞습니다
여러서버들에서 실행되는 경우는 각 서버마다 동시성 문제를 해결해주어야 하고(메모리는 하나이기 때문에) 만약 db 와 연동해야 한다면 이것 역시 동시성 문제가 발생하긴 하지만 보통 db 자체에서 락을 지원해 주기 때문에 java 에서 db 부분에 대한 동시성 부분까지 고려할 필요는 없습니다





