티스토리 뷰

Language/Java

[JAVA8] 람다 표현식

JayStevency 2017. 1. 18. 17:27

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함