자바 스레드 생명 주기자바 스레드의 생명 주기는 시작부터 시작하여 실행, 일시 중지, 종료의 상태를 갖고 있다. 1. New - 스레드가 생성되고 아직 시작되지 않은 상태2. Runnable - 실행될 준비가 됐거나, 실제로 실행 중인 상태3. Blocked - 동기화 락을 기다리는 상태, synchronized에서만 사용하는 특별한 스레드 대기 상태4. Waiting - 다른 스레드의 작업이 완료되기를 무기한 기다리는 상태5. Timed Waiting - 스레드가 일정 시간 동안 대기하는 상태6. Terminated - 스레드의 실행이 완료된 상태 join - 다른 스레드의 작업 대기class SumTask implements Runnable { int startValue; int endV..
개요Stream은 중간 연산을 거친 데이터들을 collect 최종 연산을 통해 다양한 컬렉션으로 반환할 수 있다. 구조public interface Stream extends BaseStream> { .. //Collector 인터페이스를 통해 최종 연산 반환 타입 지정 R collect(Collector collector); ..}collect 연산은 Collector 인터페이스을 매개변수로 받아서 알맞은 컬렉션 형태로 반환한다. 자바에서 Collectors 클래스를 통해 Collector 인터페이스의 대부분 기능을 구현해 놓았다. Collectors 클래스에서 어떤 기능들로 어떤 타입들을 반환하는지 알아보자. List 반환//수정 가능List list = Stream...
Stream이란?Java 8부터 도입된 기능으로 데이터 흐름을 추상화해서 다루는 도구이다. 컬렉션 데이터를 함수형 프로그래밍 방식으로 처리할 수 있게 해준다. Stream 연산Stream 연산은 중간 연산과 최종 연산으로 나뉜다. List numbers = List.of(1,2,3,4)int sum = numbers.stream() .filter(n -> n % 2 == 0) // 중간 연산 -> 짝수 필터링 후 Stream 반환 .map(n -> n * 2) // 중간 연산 -> 두 배 변환 후 Stream 반환 .sum(); // 최종 연산 -> 합계 반환중간 연산은 Stream을 반환하여 중간 연산을 통해 체이닝이 가능하다. 최종..