| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 백준
- 코딩인터뷰
- 알고리즘공부
- Java
- JVM
- 프로그래머스
- 객체지향
- 프로그래밍기초
- 자바개발
- 자바
- 개발자취업
- 자료구조
- 코딩테스트준비
- 코딩테스트팁
- 자바공부
- 파이썬
- 메모리관리
- 클린코드
- 개발자팁
- 예외처리
- 자바기초
- 멀티스레드
- 알고리즘
- 개발공부
- 자바프로그래밍
- HashMap
- 가비지컬렉션
- 정렬
- 코딩공부
- 코딩테스트
- Today
- Total
목록volatile (2)
코드 한 줄의 기록
오늘은 Java 개발자라면 반드시 이해해야 하지만, 개념이 좀 복잡해서 넘어가기 쉬운 주제인 volatile 키워드와 happens-before 관계에 대해 우리가 함께 공부하고 정리해보려고 합니다. 저도 처음에는 이 개념들이 정말 헷갈렸는데, 차근차근 이해하다 보니 멀티스레드 프로그래밍의 핵심이 무엇인지 보이더라고요. 그래서 이번 글에서 제가 학습한 내용을 최대한 쉽고 실용적으로 풀어서 설명하려고 합니다.문제 상황: 멀티스레드 환경에서 왜 문제가 생길까?먼저 volatile 키워드가 필요한 이유를 알기 위해, 간단한 예시로 시작해봅시다.여러분이 만든 애플리케이션에 두 개의 스레드가 있다고 생각해봅시다. Thread A가 어떤 변수 값을 변경하고, Thread B가 그 변수를 읽으려고 합니다. 당연히 T..
오늘은 Java를 공부하면서 정말 헷갈렸던 부분을 다루고자 합니다. 바로 Synchronized(동기화), 가시성(Visibility), 원자성(Atomicity)에 관한 내용입니다. 이 세 가지 개념은 멀티스레드 환경에서 매우 중요한데, 많은 개발자분들이 이 개념을 완벽히 이해하지 못한 채 코드를 작성하는 경우가 많습니다. 사실 저도 처음에는 이 개념들이 무엇인지, 어디에 써야 하는지, 왜 필요한지 전혀 알지 못했습니다. 처음에는 이 개념들이 비슷하면서도 다르다는 점을 이해하지 못했지만, 실제 프로젝트에서 스레드 관련 버그를 직접 경험하면서 조금씩 깨닫기 시작했습니다. 오늘은 제가 배운 내용을 차근차근 설명드리려고 합니다. 혼자 고민하며 공부하는 것보다는 함께 이해해 나가는 것이 훨씬 낫다고 생각합니다..