ByteBuffer
는 Java NIO의 패키지의 핵심 구성 요소 중 하나로 바이트 데이터를 읽고, 쓰고, 조작할 수 있는 버퍼를 제공하는 클래스
다. 버퍼는 기본적으로 일련의 데이터 요소를 포함하는 연속된 메모리 블록으로 구성되며, ByteBuffer는 바이트 타입의 데이터를 저장한다. 이 버퍼는 네트워크 통신이나 파일 I/O와 같은 곳에서 데이터를 임시 저장하는 데 사용된다.
Continue reading
Java NIO (New Input/Output)는 Java 1.4 버전에서 소개된 입력 및 출력의 새로운 방식으로, 기존의 표준 Java I/O를 보완하여 더 높은 성능과 기능을 제공합니다. Java NIO는 논블로킹(non-blocking) 입출력, 버퍼 관리, 채널(channel)을 이용한 데이터 전송 등의 특징
을 가지고 있다.
Continue reading
자바의 Spliterator
는 Java 8에서 도입된 인터페이스로, Iterator
와 Iterable
인터페이스의 확장된 것이다. Spliterator
는 “splitable iterator”의 줄임말로, 요소를 순차적으로 탐색하면서 필요에 따라 분할할 수 있는 기능을 제공한다. 이는 주로 병렬 프로그래밍을 위해 설계되었다. Collection
인터페이스를 구현하는 클래스는 spliterator()
메서드를 통해 Spliterator
객체를 제공할 수 있다.
Continue reading
스트림 병렬 처리는 자바(Java) 8 이상에서 도입된 Stream API의 중요한 기능 중 하나로 개발자는 데이터의 병렬 처리를 간단하게 적용할 수 있으며, 멀티 코어 프로세서의 성능을 최대한 활용하여 작업을 더 빠르게 처리할 수 있다.
Continue reading
Fork/Join 프레임워크에서 RecursiveTask와 RecursiveAction의 명세서를 살펴보면 두 클래스 모두 Future 인터페이스를 구현한 추상 클래스이다.
Continue reading
Thread, Runnable, Callable, ExecutorService 는 병렬 처리 및 비동기 실행 등 멀티 스레딩에 대해서 지원한다. 해당 포스팅에서는 Runnable과 Callable에 대한 내용이다.
Runnable과 Callable
은 Java에서 병렬 또는 비동기 작업을 정의할 때 사용되는 함수형 인터페이스입니다. 함수형 인터페이스이기에 단일 추상 메서드로 Runnable은 run() 메서드를, Callable은 call() 메서드를 정의한다. 람다 표현식과 함께 사용될 수 있어 Java 8 이상에서 함수형 프로그래밍을 지원한다.
Continue reading
자바 5에서 컨커런트API가 나오고 자바 7에서 Fork(포크)/Join(조인)
프레임워크가 나왔다. Fork/Join 는 java.uitl.concurrent 패키지의 ExecutorService 인터페이스를 구현한 클래스이다.
Continue reading
컨커런트 API의 java.util.concurrent 패키지에서 JAVA 5에서 추가 된 Executor(실행자)
에 대한 포스팅이다.
Continue reading