티스토리 뷰
01 : 왜 람다 인가?
기존의 자바에선 어딘가에 코드 블록을 전달 하는 일이 쉽지 않았을 것이다. 예를 들면
1 2 3 4 5 6 7 | class Worker implements Runnable { public void run(){ for(int i = 0; i < 1000; i++) doWork(); } ... } |
이 코드를 실행 하려 하면 먼저 Worker 클래스의 인스턴스를 생성할 것이다. 그리고 이 인스턴스를 Thread pool 에 넣고 실행하거나 간단하게 새로운 스레드로 시작한다.
1 2 | Worker w = new Worker(); new Thread(w).start(); |
핵심 연산인 run() 함수를 실행 시키기 위해 클래스 하나를 정의해서 스레드를 할당 하는것은 번거로운 일이다. 이것을 람다로 바꿔서 구현 해보면
1 2 3 4 5 | Runnable w2 = ()->{ for(int i = 0; i < 100; i++) System.out.println("2 worker is working..."); }; new Thread(w2).start(); |
얼마나 간단하게 구현 가능한지 볼 수 있다.
<소스코드>
https://github.com/JayStevency/Java8/blob/master/src/com/java8/treadTest/WorkerTest.java
'Language > Java' 카테고리의 다른 글
| [JAVA8] 람다 표현식 (0) | 2017.01.24 |
|---|---|
| [JAVA8] 람다 표현식 (0) | 2017.01.24 |
| [JAVA8] 람다 표현식 (0) | 2017.01.18 |
| [JAVA8] 람다 표현식 (0) | 2017.01.18 |
| [JAVA8] 람다 표현식 (0) | 2017.01.18 |
