동시성 문제 | 잠금을 이용한 동시 접근 제어 | 원자적 타입과 동시성 지원 컬렉션 | DB와 동시성: 선점 잠금과 비선점 잠금 | 잠금 주의 사항
트래픽 많지 않아도 동시 요청은 발생
ex. 1개 요청 처리 0.1초 → 100개 요청 1초 안에 처리하려면 0.1초마다 10개 동시 처리 필요
클라이언트 요청 → 서버 → DB 쿼리 요청 & 결과 응답
동시에 여러 클라이언트 요청 → 서버도 동시에 여러 쿼리 전송 ⇒ 서버는 요청을 동시에 처리해야 함
IF. 동시 처리 X 각 요청 순차 처리 → 서버의 전체적인 성능(처리량, 응답 시간) ↓
서버가 동시에 여러 클라이언트 요청 처리하는 방식 2가지
⇒ 서버 동시 실행 → (-) 서로 다른 두 스레드 동시에 같은 데이터 조회, 수정할 수 있음
Increaser
클래스
int()
: count
1 증가public class Increaser {
private int count = 0;
public void inc() {
count = count + 1;
}
public int getCount() {
return count;
}
}