코딩스타트

코딩스타트

반응형
  • 분류 전체보기 (363)
    • IT이론 (8)
    • ChatBot (2)
    • 머신러닝 (5)
    • Web (110)
      • Spring (57)
      • Spring batch (0)
      • Spring Cloud (5)
      • Spring Security&OAuth (4)
      • JPA (24)
      • Maven (3)
      • Gradle (5)
      • TDD (7)
      • Netty (1)
      • gRPC (4)
    • Front-End (3)
      • Vue.js (3)
      • React (0)
    • Search-Engine (29)
      • Lucene (4)
      • Elasticsearch&Solr (25)
    • Middleware (23)
      • Kafka&RabbitMQ (17)
      • Redis (5)
      • Zookeeper (1)
    • 프로그래밍언어 (50)
      • Java&Servlet (26)
      • Kotlin (5)
      • JavaScript (4)
      • Python (2)
      • 디자인패턴 (13)
    • Database (14)
      • MongoDB (14)
    • 인프라 (46)
      • Web Server & WAS (4)
      • Docker&Kubernetes (19)
      • Jenkins (5)
      • AWS (4)
      • 네트워크(기초) (8)
      • 운영체제 (6)
    • Tools (13)
      • Git&GitHub (12)
      • IntelliJ (1)
    • 알고리즘&자료구조 (19)
      • 그래프&다익스트라 (7)
      • 백트랙킹 (2)
      • 재귀호출 (2)
      • 다이나믹 프로그래밍 (5)
      • 문자열 처리 (2)
    • 일상&기타 (35)
      • TODO (1)
      • Apple (0)
      • IT News (2)
      • 티스토리&구글애드센스 (1)
      • Toy Project (0)
      • IT 잡학다식 (1)
      • 일상 (1)
      • 책 (28)
  • 방명록
  • Sptirng OAuth2.0
  • Spring Security
  • Kubernetes Sample
  • Kakao Tech
  • GoReplay
  • AI Dev
RSS 피드
로그인
로그아웃 글쓰기 관리

코딩스타트

컨텐츠 검색

태그

백준 엘라스틱서치 ElasticSearch 루씬 쿠버네티스 몽고디비 Lucene java github 스프링 알고리즘 Spring 디자인패턴 docker mongodb JPA 검색엔진 springboot git Kafka

최근글

댓글

공지사항

아카이브

Set(1)

  • Java - CopyOnWriteArraySet 클래스

    크기가 일반적으로 작고 읽기 전용 작업이 변경 작업보다 훨씬 많을 때 사용하면 좋은 라이브러리이다. iteration 중, 스레드 간의 간섭이 없어야 할때 사용하기 좋다. 즉, 스레드 안전하다. 하지만 변경 작업 같은 경우(add, set, remove) snapshot(복제본)을 이용하여 변경작업을 하기 때문에 비용이 비싸다. 내부적으로 object lock, synchronized 등이 사용되기 때문에 읽기 작업이 많고 변경작업이 적은 경우에 사용하는 것이 좋다. 그리고 해당 라이브러리는 iteration 중 remove를 지원하지 않는다. 해당 라이브러리가 스레드 안전한 이유는 iteration을 사용할때, iteration을 새로 생성하지 않는 이상 내부적으로 가지고 있는 List의 스냅샷에 의존..

    2019.12.19
이전
1
다음
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바