Razelo 기술노트

  • 홈
  • 태그
  • 방명록
  • 카카오 브런치

java thread volatile 1

[Java] 공유객체와 volatile 키워드

공유객체란 무엇일까? 공유객체는 하나의 객체를 여러 개의 Thread가 사용한다는 의미이다. volatile은 무엇일까? volatile은 해당 키워드로 선언된 변수를 컴파일러의 최적화 대상에서 제외시킨다는 의미이다. 그래서 값이 변경되는 즉시 변수에 적용시킨다. 그런데 하나의 Thread가 아닌 여러 Thread가 Write하는 상황에서는 적합하지 않다고 한다. Java에서 volatile은 Java 변수를 Main Memory에 저장하겠다는 것을 명시하는 키워드이다. 그래서 변수의 값을 읽을때 CPU 캐시에 저장된 값이 아니라 Main Memory에서 읽게 되는 것이다. 그리고 마찬가지로 변수의 값을 쓸때도 Main Memory에까지 작성하는 것이다. 왜 volatile 키워드가 필요할까? volat..

Java 2021.01.05
이전
1
다음
더보기
프로필사진

Razelo 기술노트

안녕하세요 반갑습니다. Software Engineer Razelo라고 합니다. 기술에 대한 자유로운 이야기를 하고 있습니다. Backend, Infrastructure에 관심이 많습니다. (그 외 기술과 관련된 것이라면 무엇이든 관심 많습니다.)

  • 분류 전체보기 (523)
    • 개인적인 생각 (7)
    • Career (0)
    • Dev (13)
    • Activity (4)
      • 스타트업 인턴 (4)
      • 동아리 (0)
    • Google Developer Student Cl.. (10)
      • GDSC 백엔드 스터디 (7)
      • GDSC 면접 리뷰 (2)
      • GDSC CS 스터디 (1)
    • OpenSource (1)
      • 분석 (1)
    • 기술 서적 (13)
    • 개발 정보 (58)
    • Backend (8)
      • RabbitMQ (6)
      • 관련 기술 (1)
    • Data Engineering (1)
      • Spark (0)
      • Airflow (1)
      • SQL (0)
    • Spring Framework (48)
      • Spring (8)
      • SpringBoot (40)
    • Java (79)
    • AI (11)
      • 2021 AI엔지니어 고급반 (7)
      • Deep learning (4)
    • kubernetes (1)
    • Python 3 (27)
      • Python3 (14)
      • Flask (5)
      • Django (7)
    • Linux (7)
      • System Programming (0)
    • C & C++ (37)
      • C (23)
      • C++ (14)
    • Web Tech (18)
      • javascript (17)
      • typescript (1)
    • Computer Graphics (7)
    • Servlet & Jsp (14)
    • Kotlin (6)
    • Lua (0)
    • Rust (5)
    • Go (8)
    • Blockchain (12)
    • Startup (1)
      • 스토리 (1)
    • 기술 에세이 (2)
    • Functional Programming (3)
      • Scala (0)
    • Computer Security (6)
    • Unreal Engine (4)
    • Algorithm (32)
      • 알고리즘 이론 (12)
      • 문제풀이 (20)
    • Tools (12)
      • vi (1)
      • vim (1)
      • intellij (2)
      • Visual Studio (1)
    • Database (11)
      • OracleDB (4)
      • Redis (4)
      • MySQL (3)
    • Mobile Programming (1)
      • Android (1)
      • iOS (0)
    • Cloud Engineering (14)
      • AWS (10)
      • NCP (2)
      • GCP (1)
    • Infrastructure (18)
      • Git (13)
      • Docker (4)
      • Etc.Infra (1)
    • Tech Podcast (22)
    • Operating System (3)
      • Hand-made OS (2)
      • OS concept (1)
    • Virtualization (0)

최근글과 인기글

  • 최근글
  • 인기글

최근댓글

공지사항

  • Razelo 기술노트 블로그 소개

Archives

방문자수Total

  • Today :
  • Yesterday :
brunch

Copyright © AXZ Corp. All rights reserved.

  • 브런치

티스토리툴바