스레드 동기화와 volatile, synchronized 키워드
우리 팀에서는 사용자의 조작에 따라 카프카의 특정 토픽을 구독하거나 구독 취소하는 기능을 구현하고 있다. 이 과정에서 topicList라는 리스트를 통해 구독할 토픽을 관리하고, 해당 리스트의 사이즈를 체크하여 구독할 대상이 있는 경우에만 로직을 실행하도록 개발했다. 그런데 topicList에 데이터가 하나도 없을 때 무한루프에 빠져 새로운 토픽이 추가되어도 무한루프를 빠져나오지 못하는 현상이 발생했다.문제의 원인아래는 대략적인 코드이다. 코드를 살펴보면, topicList의 사이즈가 0일 때 while문 안에서 continue가 호출되어 무한루프에 빠지는 것을 알 수 있다. 사실 이 코드는 애초에 잘못 짜여진 코드이다. 토픽이 없는 경우에도 무한루프에 빠지가 코드를 짜면 안된다. 하지만 그렇다고 하더라..
JAVA
2024. 11. 11. 21:38
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 오블완
- SynchronousQueue
- 제우스8
- 제우스8.5
- 다중 데이터소스
- kafka without zookeeper
- cleanup policies
- cleanup policy
- multiple datasource
- docker
- 넥서스 파일 보관주기
- kafka with raft
- 보관주기
- 도커
- 넥서스 보관주기
- 카프카
- 쓰레드 변수
- jeus8.5
- AWS
- volatile
- 네트워크
- 주키퍼 없는 카프카
- s3
- php
- jeus8
- db 두개
- 스레드 동기화
- API Gateway
- 제우스 로그
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함