분류 전체보기(139)
-
Java - Executors
15. Executors 고수준 (High-Level) Concurrency 프로그래밍 ● 쓰레드를 만들고 관리하는 작업을 애플리케이션에서 분리. ● 그런 기능을 Executors에게 위임. Executors가 하는 일 ● 쓰레드 만들기: 애플리케이션이 사용할 쓰레드 풀을 만들어 관리한다. ● 쓰레드 관리: 쓰레드 생명 주기를 관리한다. ● 작업처리및실행:쓰레드로실행할작업을제공할수있는API를제공한다. 주요 인터페이스 ● Executor: execute(Runnable) ● ExecutorService: Executor 상속 받은 인터페이스로, Callable도 실행할 수 있으며, Executor를 종료 시키거나, 여러 Callable을 동시에 실행하는 등의 기능을 제공한다. ● ScheduledExecu..
2020.09.28 -
Java- Concurrent 프로그래밍
14. 자바 Concurrent 프로그래밍 소개 Concurrent 소프트웨어 ● 동시에여러작업을할수있는소프트웨어 ● 예)웹브라우저로유튜브를보면서키보드로문서에타이핑을할수있다. ● 예)녹화를하면서인텔리J로코딩을하고워드에적어둔문서를보거나수정할수있다. 자바에서 지원하는 컨커런트 프로그래밍 ● 멀티프로세싱 (ProcessBuilder) ● 멀티쓰레드 자바 멀티쓰레드 프로그래밍 ● Thread / Runnable Thread 상속 public static void main(String[] args) { HelloThread helloThread = new HelloThread(); helloThread.start(); System.out.println("hello : " + Thread.currentThread(..
2020.09.28 -
Java - Date와 Time Api
13. Date와 Time API 지금 이 순간을 기계 시간으로 표현하는 방법 ● Instant.now(): 현재 UTC (GMT)를 리턴한다. ● Universal Time Coordinated == Greenwich Mean Time 인류용 일시를 표현하는 방법 ● LocalDateTime.now(): 현재 시스템 Zone에 해당하는(로컬) 일시를 리턴한다. ● LocalDateTime.of(int, Month, int, int, int, int): 로컬의 특정 일시를 리턴한다. ● ZonedDateTime.of(int, Month, int, int, int, int, ZoneId): 특정 Zone의 특정 일시를 리턴한다. 기간을 표현하는 방법 ● Period / Duration . beteen() ..
2020.09.27 -
JAVA - stream
pararelleStream. 병렬처리가 항상 빠른 것은 아니다. 병렬처리가 효과가 클때는 데이터가 정말 방대할 때이다. 8. Stream 소개 Stream ● sequence of elements supporting sequential and parallel aggregate operations ● 데이터를 담고 있는 저장소 (컬렉션)이 아니다. ● Funtional in nature, 스트림이 처리하는 데이터 소스를 변경하지 않는다. ● 스트림으로 처리하는 데이터는 오직 한번만 처리한다. ● 무제한일 수도 있다. (Short Circuit 메소드를 사용해서 제한할 수 있다.) ● 중개 오퍼레이션은 근본적으로 lazy 하다. ● 손쉽게병렬처리할수있다. 스트림 파이프라인 ● 0 또는 다수의 중개 오퍼레이..
2020.09.27 -
JAVA - 함수형 인터페이스
함수는 들어오는 값이 같으면 나오는 값도 같아야한다. 2. 함수형 인터페이스와 람다 표현식 소개 함수형 인터페이스 (Functional Interface) ● 추상 메소드를 딱 하나만 가지고 있는 인터페이스 ● SAM (Single Abstract Method) 인터페이스 ● @FuncationInterface 애노테이션을 가지고 있는 인터페이스 람다 표현식 (Lambda Expressions) ● 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있다. ● 코드를줄일수있다. ● 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있다. 자바에서 함수형 프로그래밍 ● 함수를 First class object로 사용할 수 있다. ● 순수 함수 (Pure function) ○ 사이드 이팩트가 없..
2020.09.26 -
JAVA - 메타 애너테이션
메타 애너테이션 - 메타 애너테이션은 '애너테이션을 위한 애너테이션' - 메타 애너테이션은 java.lang.annotation 패키지에 포함 @Target -애너테이션을 정의할 때, 적용대상 지정에 사용 @Target({FIELD, TYPE, TYPE_USE}) @interface MyAnnotation {} // 애너테이션을 정의 @Retention -애너테이션이 유지(retention)이 되는 기간을 지정하는데 사용 class는 잘 안씀. -컴파일러에 의해 사용되는 애너테이션의 유지 정책은 SOURCE이다. @Target(ElementType.MEHOTD) @Retention(RetentionPolicy.SOURCE) // 컴파일러가 읽어낸다음은 필요가 없기때문에 클래스파일에서 빠진다. 소스 파일에..
2020.09.26