자바 병렬 프로그래밍 - 7장 작업 실행
스레드가 작업 중일 때 자바에서 해당 작업을 강제로 멈추게 하는 방법은 없다. 다만 앞선 포스팅에서 본 것처럼 인터럽트를 통해 특정 스레드에게 해당 작업을 멈춰달라고 요청 할 수 있다. 이러한 멈춤을 요청할 때는 작업을
스레드가 작업 중일 때 자바에서 해당 작업을 강제로 멈추게 하는 방법은 없다. 다만 앞선 포스팅에서 본 것처럼 인터럽트를 통해 특정 스레드에게 해당 작업을 멈춰달라고 요청 할 수 있다. 이러한 멈춤을 요청할 때는 작업을
스레드에서 작업 실행 흔히 사용하는 작업이라는 단위는 수행할 로직을 특정 범위를 가지며 수행하는 일종의 단위이다. 그래서 이러한 작업을 스케쥴링하거나 분산 시키려면 해당 작업이 전체 로직 내에서 충분히 작은 단위로 구성되어야한다. 서버 어플리케이션에서의 작업의
1.1 SQL 파싱과 최적화 구조적, 집합적, 선언적 질의 언어 SQL은 단어 그대로 구조적 질의 언어이다. 해당 언어는 아래와 같은 순서로 실행된다. 옵티마이저가 프로그래밍을 대신해서 최적의 계획을 통해 프로시저를 작성한다. * 사용자 ->
가시성 특정 변수의 값을 여러 스레드가 가져갈 때, 한 스레드가 작성한 값을 가져간다는 보장을 할 수 없다. 그래서 메모리상의 공유된 변수를 여러 스레드에서 접근할 때는 반드시 동기화 기능이 구현되어야 한다. public class NoVisibility
동기화 프로그램 작성 시 아래의 3가지 사항을 고려한다. 1. 해당 상태 변수를 스레드 간에 공유하지 않거나 2. 해당 상태 변수를 변경할 수 없도록 만들거나 3. 해당 상태 변수에 접근할 땐 언제나 동기화를 사용한다.
자바 7이 등장하기 전까지는 데이터 컬렉션을 병렬로 처리하기 어려웠습니다.이번 장에서는 자바7에 포함된 포크 조인 프레임워크와 병렬 스트림이 어떻게 처리되는지 알아보겠습니다. 병렬 스트림 컬렉션에 stream() 대신 parallelStream()을 호출하면 쉽게 병렬 스트림을 생성
분할 분할은 분할 함수라 불리는 프리디케이트를 분류 함수로 사용하는 특수한 그룹화 기능입니다.분할 함수는 불리언 값을 반환하기 때문에 그룹화된 Map의 Key의 Type은 Boolean입니다.결과적으로 그룹화된 Map의 Key는 True or False만을 가지는 두 개의
지금까지 배운것으로 스트림을 한 마디로 요약하면 데이터 집합을 효율적이고 Lazy하게 처리하는 반복자라고 알 수 있습니다.또한 스트림의 연산들은 filter 또는 map 같은 중간 연산과 count,findFirst,forEach,reduce 등의 최종 연산으로 구분할 수
이번 장에서는 본격적으로 Streamd을 활용하는 방법에 대해 배워보겠습니다. 필터링 스트림 객체는 filter() 메서드를 지원합니다.filter 메서드는 Predicate를 인자로 받아 해당 Predicate와 일치하는 스트림 내부의 요소를 포함하는 스트림 객체를 반환합니다.또 다른 필터링은 지원하는
스트림이란 무엇인가? 스트림은 자바8에서 새롭게 추가된 기능입니다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있습니다.또한 이를 활용하면 멀티스레드 코드를 구현하지 않아도 병렬 처리가 가능합니다.아래 예제를 통해 스트림을 사용하는 예를 알아봅시다.예제는