JAVA64 동시성 과 병렬성(Concurrence and parallelism) 동시성 과 병렬성(Concurrence and parallelism) 동시성(concurrence)과 병렬성(parallelism, multi thread) 어떻게 보면 같은 말인것 같지만 정확히 표현하면 전혀 다른 의미로 사용된다. Thread를 공부함에 있어 이두부분을 명확하게 집고 넘어가야한다. 동시성은 하나의 프로그램내에서 여러작업이 동시에 진행되는것을 말한다. 예를들어 사용자가 웹브라우저에 메일을 읽고 있을때 동시에 다른 탭에서 비디오를 재생하고 있다면 이는 동시성을 보여주는 예이다. (Open GPT를 통해 얻은 예제인데 뭔가 쉽게 이해할 수 있는 예시는 아닌거 같다) 그림으로 보면 다음과 같다. 실제론 싱글코에서 동작되며 여러 작업이 동시에 실행되는것 처럼 보이게 하는것이다. 싱글코어에서 다.. 2023. 2. 1. async/sync & blocking/ non-blocking (동기/비동기 & 블로킹/논블로킹) 동기화, 비동기화 & 블로킹/논블로킹을 이야기하다보면 아직도 많이 혼란스럽다. 최근에는 reactive 프로그래밍이라고 하여 프론트에서는 동기/비동기화 관련 글들이 많고 서버에서도 블로킹/논블로킹관련 reactive(리액티브) 글들이 많다. UI에서는 대표적으로 Vue.js 나 React.Js 를 꼽을수있고, 서버쪽에서는. RxJava(RetiveX), Spring Reactor(https://projectreactor.io/) 를 들을수있다. 간단하게 설명하면 Reactive X는 넷플릭스에서 공개한 오픈소스라이브러리 이고, Reactor는 Spring 오픈소팀이 만든 프레임워크 이다. 참고) Advanced Reactive Java 그럼 우리가 흔히 알고있는 async 및 sync 에 대하 먼저 알아.. 2022. 11. 28. Java Stream Java Stream 스트림은 JAVA8 API 에 새로추가된 기능이다.스트림을 이용하면 선언형 (즉, 데이터를 처리하는 임시 구현코드 대신 질의로 표현할 수 있다) 으로 컬렉션 데이터를 처리 할 수있다. 일단 스트림이 데이터 컬렉션 반복을 멋지게 처리하는 기능이라고 생각하자. 또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않고도 데이터를 투명하게 병렬로 처리할 수있다. → morden java in action Stream 의 여러 기능중 filter, sorted, map , collect 같은 여러 빌딩 블록 연산을 연결해서 복잡한 데이터 처리 의 파이프라인을 만들어 낼수있다. 여러 연산을 파이프라인으로 연결해도 여전히 가동성과 명확성이 유지된다. filter와(sorted, map, colle.. 2022. 10. 6. java final 의 의미, 언제 사용할까? 코드리뷰를 할때나, 개발을 할때 final을 보면 이게 꼭 필요한것인가? 하고 의문을 같거나 언제 사용하면 좋을까? 하고 생각에 잠기는 경우가 생긴다. 기본적으로 final 이라고하면 불변 객체에 정의후 값을 재할당하지 않을때 사용함으로 상수(const)에서 많이 사용한다. 요즘엔 IDEA 도구가 좋아지다 보니, Eclipse나 IntelliJ 에서 자주 추천을 해준다. 특히나 Spring(boot)를 사용하시는 개발자라면 생성자 방식의 주입을 사용하실때 ide에서 final을 추천해준다. 그럼 언제 사용하고, 어떤 의미를 가지고 있는지 좀더 살펴보자. final 종류 final 변수 final method final class for example final 변수 → 해당 변수가 생성자나 대입 연산을 .. 2021. 6. 9. 이전 1 2 3 4 ··· 16 다음 728x90