inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ocean blue님의 게시글

ocean blue ocean blue

@haeriri

수강생
-
수강평
-
강의 평점
-

게시글 1

질문&답변

synchronized 와 @Transactional

안녕하세요. 제가 이해한게 맞는지 궁금해서 여쭤봅니다. @Transactional에서 고립 레벨 디폴트가 read_committed 이고, synchronized는 quantity를 동기화할 뿐, 트랜잭션의 시작과 끝을 동기회하지는 않음. 그래서 여러 스레드에서 트랜잭션이 동시에 시작되고, 모든 트랜잭션들이 자신의 트랜잭션이 시작되기 전에 커밋된 quantity == 100개의 상태일 때 접근하게 됨. ( read_committed이면 다른트랜잭션이 커밋한 내용이 보이는데,아직 다들 커밋을 안한 상태라서 현재 모두들 공유자원이 100개로 보이는 상태.) 이 순간에 quantity가 동기화되면서 하나의 스레드씩만 접근을 해서 quantity를 줄이고, 그 quantity에 대한 락이 풀림. 그리고 먼저 실행된 트랜잭션이 커밋되려고 하는데, 다른 트랜잭션이 그때 락이 풀려있는 quantity에 접근할 수 있음. 위 내용대로 이해했는데 맞을까요?

좋아요수
0
댓글수
2
조회수
1315