일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- JVM
- 자료구조
- 엔티티 그래프
- 백준장학금
- 운영체제
- 힙트리
- 점근적 표기법
- 최대 힙
- 연결리스트 종류
- 이분탐색이란
- JPA
- spring
- 스케줄링
- 프로세스
- jpa n+1 문제
- 최소힙
- 강화학습
- MSA
- SpringSecurity
- Kruskal
- 백준 장학금
- 멀티프로세서
- 알고리즘
- 연결리스트
- heapq
- HTTP
- python
- posix
- AVL트리
- 완전이진트리
- Today
- Total
목록2025/07/17 (2)
KKanging

자바 병렬 프로그래밍 시리즈[java의 병렬 프로그래밍] JVM 의 스레드 구조 및 원리[java의 병렬 프로그래밍] 경쟁상태의 2가지 패턴과 Java 동기화 기본 동시성과 동기화락을 이용해 동기화하면 완전 해결일까?이전 글에서 경쟁상태가 생기는 이유는 모두 데이터의 일관성을 해치는 원자적이지 않은 실행 코드 때문이었다. 그래서 락을 사용하여 원자성을 보장을 통해 데이터의 일관성을 유지했다.이를 통해 모든게 해결됐을까?현대 애플리케이션은 성능이 엄청 중요해졌다. 그러다 보니 데이터의 일관성을 챙기기 위해 락을 통한 동시성 제어는 동시성 성능을 많은 영향을 준다. 자바 코드에서 데이터의 일관성도 챙기면서 최대한 동시성 성능을 높일지에 대해 이야기 해본다.(물론 일관성을 아예 신경 안쓰는 것보단 성능이 좋지..

자바 병렬 프로그래밍 시리즈[java의 병렬 프로그래밍] JVM 의 스레드 구조 및 원리 Race Condition멀티 스레딩과 같은 병렬 작업으로 비동기처리를 하는 프로그래밍 방식은 싱글 스레드보다CPU 자원을 보다 효율적으로 사용함으로써 높은 병렬성으로 성능을 높일 수 있다. 하지만 공유자원이 있다면 개발 난이도가 상승하고 잘못 구현하면 원치 않는 결과가 나오거나 심하면 장애를 유발할 수 있다.이렇게 공유 자원에 여러 스레드가 동시에 접근하여 데이터 정합성 이슈가 발생할 수 있는 상황을 Race Condition이라고 한다. Race Condition 이 발생하는 패턴은 2가지가 있는데 같이 확인해보자Read-Modify-Write공유 자원의 값을 읽고 그에 대한 값을 수정하고 공유 자원에 다시 쓰는..