개발로그
close
프로필 배경
프로필 로고

개발로그

  • 분류 전체보기 (511)
    • JAVA (68)
      • 자바소개 (4)
      • 자바 기본 문법 (22)
      • 객체 지향 프로그래밍 (15)
      • 예외 처리 (9)
      • 스레드 (18)
    • Databases (14)
      • JDBC (13)
      • Hibernate ORM (1)
    • GIT (39)
      • 시작하기 (5)
      • GIT의 기초 (7)
      • Git 브랜치 (6)
      • Git 서버 (7)
      • Git 분산 환경 (6)
      • Git 도구 (8)
    • 알고리즘 (41)
      • 자료구조 (24)
      • 검색 알고리즘 (0)
      • 초급 알고리즘 (17)
      • 중급 알고리즘 (0)
      • 고급 알고리즘 (0)
    • 코딩문제 (35)
    • D3 (47)
      • D3 소개 (2)
      • 시각화 (45)
    • Docker (30)
    • Kubernetes(K8S) (2)
    • 도구 (39)
      • 프리미어프로 (39)
    • 브라우저 (32)
    • JavaScript (79)
    • TypeScript (38)
    • REACT (13)
      • 리액트 학습하기 (13)
      • 리액트 API (0)
      • 리액트 DOM API (0)
    • React Native (19)
    • Electron (15)
    • 인증 (0)
  • 홈
  • 태그
  • 방명록
[JAVA] volatile 키워드의 활용

[JAVA] volatile 키워드의 활용

volatile 개념 다중 스레드 환경에서 변수의 가시성과 순서에 대한 동기화를 제어하는 데 사용됩니다. 가시성 보장 스레드 A가 변수를 수정하고 스레드 B가 해당 변수를 읽을 때, 스레드 B가 스레드 A의 수정 내용을 정확하게 볼 수 있어야 합니다. volatile 키워드를 사용하면 캐시를 사용하지 않고 변수의 값을 항상 메인 메모리에서 읽고 쓰도록 보장하므로 다른 스레드에 대한 가시성을 보장합니다. 순서 보장 volatile 키워드를 사용하면 변수의 변경 순서가 항상 일관적으로 유지됩니다. 즉, 변수의 변경이 항상 이전 변경에 따라 발생하고, 이후 변경이 이전 변경에 따라 발생합니다. 이를 통해 변수의 수정 순서가 잘못된 결과를 초래하는 문제를 방지할 수 있습니다. public class Exampl..

  • format_list_bulleted JAVA/스레드
  • · 2023. 9. 25.
  • textsms
[JAVA] synchronized와 static synchronized의 차이점(block, method)

[JAVA] synchronized와 static synchronized의 차이점(block, method)

synchronized method 해당 메서드를 호출하는 객체에 락을 사용하여 동기화됩니다. 이렇게 하면 해당 객체에 대해 하나의 스레드만 메서드를 실행할 수 있습니다. public class SynchronizedClass { public synchronized void start(String threadName) { System.out.println(threadName + " lock"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(threadName + " unlock"); } } 인스턴스가 1개인 경우 public class Main { public sta..

  • format_list_bulleted JAVA/스레드
  • · 2023. 9. 25.
  • textsms
[JAVA] synchronized 키워드와 락(Lock) 개념

[JAVA] synchronized 키워드와 락(Lock) 개념

synchronized 키워드 synchronized 키워드는 자바 언어에서 락(Lock)을 사용하기 위한 키워드입니다. 특정 메서드 또는 코드 블록을 synchronized로 선언하면, 해당 메서드 또는 코드 블록을 한 번에 하나의 스레드만 접근할 수 있도록 합니다. synchronized 키워드 예시 public class Example { private int count = 0; public synchronized void increment() { count++; } public synchronized int getCount() { return count; } } 이러한 동기화 방식은 메서드나 코드 블록 전체를 동기화시킴으로써, 동시에 여러 스레드가 해당 코드에 접근하지 못하게 합니다. 락(Lock..

  • format_list_bulleted JAVA/스레드
  • · 2023. 9. 25.
  • textsms
[JAVA] 공유 자원과 경쟁 상태와 임계 영역

[JAVA] 공유 자원과 경쟁 상태와 임계 영역

공유 자원의 개념 공유 자원은 다수의 스레드나 프로세스가 접근하고 수정할 수 있는 데이터나 자원을 가리킵니다. 이러한 공유 자원은 동시에 여러 스레드나 프로세스가 접근할 수 있으므로 제대로 관리되지 않으면 예측할 수 없는 결과를 초래할 수 있습니다. 경쟁 상태의 개념 경쟁 상태는 여러 스레드나 프로세스가 공유 자원에 대해 동시에 접근하고 수정할 때 발생하는 문제입니다. 경쟁 상태가 발생하면 데이터의 일관성이 해치는 현상이 나타날 수 있습니다. 임계 영역의 개념 임계 영역은 다중 스레드 환경에서 공유 자원에 접근하는 부분으로, 동시에 여러 스레드가 접근해서는 안 되는 코드 영역을 가리킵니다. 경쟁 상태 예 스레드 A와 스레드 B가 동시에 공유 자원에 접근하고 수정하는 경우. 스레드 A가 공유 자원을 수정하..

  • format_list_bulleted JAVA/스레드
  • · 2023. 9. 11.
  • textsms
  • navigate_before
  • 1
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (511)
    • JAVA (68)
      • 자바소개 (4)
      • 자바 기본 문법 (22)
      • 객체 지향 프로그래밍 (15)
      • 예외 처리 (9)
      • 스레드 (18)
    • Databases (14)
      • JDBC (13)
      • Hibernate ORM (1)
    • GIT (39)
      • 시작하기 (5)
      • GIT의 기초 (7)
      • Git 브랜치 (6)
      • Git 서버 (7)
      • Git 분산 환경 (6)
      • Git 도구 (8)
    • 알고리즘 (41)
      • 자료구조 (24)
      • 검색 알고리즘 (0)
      • 초급 알고리즘 (17)
      • 중급 알고리즘 (0)
      • 고급 알고리즘 (0)
    • 코딩문제 (35)
    • D3 (47)
      • D3 소개 (2)
      • 시각화 (45)
    • Docker (30)
    • Kubernetes(K8S) (2)
    • 도구 (39)
      • 프리미어프로 (39)
    • 브라우저 (32)
    • JavaScript (79)
    • TypeScript (38)
    • REACT (13)
      • 리액트 학습하기 (13)
      • 리액트 API (0)
      • 리액트 DOM API (0)
    • React Native (19)
    • Electron (15)
    • 인증 (0)
최근 글
인기 글
최근 댓글
태그
  • #Javascript
  • #코딩문제
  • #TypeScript
  • #알고리즘
  • #D3
  • #java
  • #docker
  • #프리미어프로
  • #git
  • #브라우저
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바