본문 바로가기 메뉴 바로가기

블로그으으

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

블로그으으

검색하기 폼
  • 분류 전체보기 (38)
    • Kafka (2)
    • 웹개발 (10)
    • ㄴspring boot (4)
    • DB (3)
    • JAVA (3)
    • AWS (3)
    • 도커 (2)
    • Jenkins (2)
    • 알고리즘 (1)
    • 네트워크 (2)
    • elk (2)
    • 리눅스 (0)
    • 제우스 (1)
  • 방명록

스레드 동기화 (1)
스레드 동기화와 volatile, synchronized 키워드

우리 팀에서는 사용자의 조작에 따라 카프카의 특정 토픽을 구독하거나 구독 취소하는 기능을 구현하고 있다. 이 과정에서 topicList라는 리스트를 통해 구독할 토픽을 관리하고, 해당 리스트의 사이즈를 체크하여 구독할 대상이 있는 경우에만 로직을 실행하도록 개발했다. 그런데 topicList에 데이터가 하나도 없을 때 무한루프에 빠져 새로운 토픽이 추가되어도 무한루프를 빠져나오지 못하는 현상이 발생했다.문제의 원인아래는 대략적인 코드이다. 코드를 살펴보면, topicList의 사이즈가 0일 때 while문 안에서 continue가 호출되어 무한루프에 빠지는 것을 알 수 있다. 사실 이 코드는 애초에 잘못 짜여진 코드이다. 토픽이 없는 경우에도 무한루프에 빠지가 코드를 짜면 안된다. 하지만 그렇다고 하더라..

JAVA 2024. 11. 11. 21:38
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • lnk
  • lbr
TAG
  • 오블완
  • s3
  • 제우스8.5
  • php
  • volatile
  • 제우스 로그
  • 보관주기
  • 카프카
  • 넥서스 보관주기
  • db 두개
  • SynchronousQueue
  • 1차캐시
  • spring boot
  • 네트워크
  • 넥서스 파일 보관주기
  • multiple datasource
  • API Gateway
  • 캐시
  • 제우스8
  • 스레드 동기화
  • cleanup policy
  • docker
  • AWS
  • jpa 1차 캐시
  • 쓰레드 변수
  • 다중 데이터소스
  • cleanup policies
  • 도커
  • 주키퍼 없는 카프카
  • myabatis
more
«   2025/05   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바