2024/11/15 2

Java volatile

java에서 volatile 키워드는 스레드들 사이에서 변수에 저장된 값을 변경하는 것에 대한 가시성을 보장합니다 여기서 가시성이란 최신 상태를 유지 하고 변경된 값을 즉시 읽을수 있도록 보장한다는 말이다.     Using Cache in Multi CPUPermalink여러 개의 CPU를 사용하는 멀티 스레드 환경에서 데이터 동기화 문제가 발생합니다.각 CPU들이 각자의 스레드를 실행합니다.어플리케이션의 같은 변수를 사용하지만, CPU 캐시에 데이터를 로딩해서 사용합니다.   1.1. Data not matched between main memory and cpu cachePermalinkCPU1은 Thread1을 실행합니다.CPU2는 Thread2를 실행합니다.CPU1은 Thread1을 수행하면서 ..

Java 2024.11.15

CompletableFuture에 대해서

CompletableFuture는 Java 8에서 도입된 비동기 프로그래밍을 위한 클래스입니다. 이 클래스는 비동기 작업을 수행하고 그 결과를 비동기적으로 처리할 수 있는 메커니즘을 제공합니다. 기존의 Future 인터페이스의 단점을 보완하여, 비동기 작업의 결과를 쉽게 조합하고 체이닝(Chaining)할 수 있도록 설계되었습니다.  [ Future의 단점 및 한계 ]CompletableFuture가 갖는 작업의 종류는 크게 다음과 같이 구분할 수 있는데, 이에 대해서는 자세히 코드로 살펴보도록 하자.비동기 작업 실행작업 콜백작업 조합예외 처리   비동기 작업 실행runAsync반환값이 없는 경우비동기로 작업 실행 콜supplyAsync반환값이 있는 경우비동기로 작업 실행 콜  runAsync는 반환 값..

Java 2024.11.15