대용량 데이터 처리하기(1) - ByteArrayInputStream vs PipedInputStream
·
Java,Kotlin,SpringBoot
대용량 데이터 처리JVM에서 데이터를 처리하는 방법은 여러가지가 있다. 이번 포스팅에서는 InputStream에 대해 다뤄볼것이다.첫 번째 방법은 ByteArrayInputStream을 사용해서 데이터를 읽는것이다. 이 방법은 간단하게 읽을 수 있지만 데이터를 모두 메모리에 올려 놓고 사용하기 때문에 데이터의 용량이 크지 않을때 사용하기 좋다. 대용량 데이터가 아니라면 편하게 사용할 수 있다.fun readByByteArray(): InputStream { val size = 512 * 1024 * 1024 val baos = ByteArrayOutputStream(size) val random = Random(System.currentTimeMillis()) val buffer =..
[Java] ExecutorService와 Future
·
Java,Kotlin,SpringBoot
스레드풀자바에서는 멀티 스레드를 사용해서 여러개의 작업을 병렬로 처리할 수 있다. 만약 매우 많은 작업이 한 번에 들어온다면, 그에 맞게 스레드 를 생성하고, 메모리 사용량이 늘어나 어플리케이션 성능에 영향을 줄 수 있다.만약 미리 스레드를 여러개 만들어 놓고, 작업이 들어올때 스레드에게 하나씩 할당해준다면 스레드 생성, 메모리 비용을 줄일 수 있을것이다.자바에서는 스레드풀을 사용할 수 있도록 ExecutorService를 제공해준다.ExecutorServiceExecutorService는 직접 생성하거나, Executors 클래스의 팩토리 메서드를 사용해서 생성할 수 있다.ExecutorService executor = Executors.newFixedThreadPool(3);CachedThreadPo..
togeepizza
'Java' 태그의 글 목록