Thread를 생성하는 방법 중에서도 Thread 클래스로 부터 직접 생성하는 방법


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
32
33
34
35
36
public class CreateThread {
    
    /*
        Thread 클래스로부터 Thread 직접 생성
    */
 
    // 기본적으로 thread를 생성하기 위해서는 Runnable 타입의 인자가 필요
    
 
    //thread 생성 방법1. Runnble 구현 클래스를 통한 thread 생성 
    static class Task implements Runnable {
        public void run() {
            System.out.println("hello thread");
        }
    }
 
    public static void main(String[] args) {
        Task task = new Task();
        Thread thread1 = new Thread(task);
        thread1.start();
        
        //thread 생성방법2. 익명 구현 객체를 통한 thread 생성
        Thread thread2 = new Thread(new Runnable() {
            public void run() {
                System.out.println("thread2 created by Anonymous class");
            }
        });
        thread2.start();
        
        //thread 생성방법3. 람다식을 이용한 thread 생성
        Thread thread3 = new Thread( () -> {
            System.out.println("thread3 created by lambda");
        });
        thread3.start();
    }
}
cs


'Java' 카테고리의 다른 글

[제너릭]와일드카드 타입  (0) 2017.02.17
[제너릭]제너릭 메소드  (0) 2017.02.16
[제너릭] 제너릭과 비제너릭 비교  (0) 2017.02.15
Thread 상속으로 thread 생성  (0) 2017.01.27
멀티 스레드 개념  (0) 2017.01.25

Thread란?


사전적 의미인 실한가닥에서 유래하여 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼

이어 놓았다고 해서 유래된 이름


하나의 스레드에서는 하나의 코드 실행흐름

프로세스 내에서 스레드가 두개면 코드 실행흐름도 두개


*process란? 실행 중인 하나의 애플리케이션



Multi Thread란?


멀티 프로세스는 애플리케이션 단위의 멀티 태스킹

멀티 스레드는 애플리케이션 내부이 멀티 태스킹


멀티 프로세스는 각자 할당받은 메모리를 가지고 실행하기 때문에 각각의 프로세스는 다른 프로세스에게

영향을 주지 않는다.


멀티 스레드는 하나의 프로세스 안에 있기 때문에 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수도 있음

(이 때문에 멀티 스레드에서는 예외처리가 중요)



멀티 스레드 vs 싱글 스레드


멀티 스레드

 싱글 스레드

 멀티 스레드어플리케이션은 메인 스레드가 

종료되더라도 실행중인 메소드가 하나라도 있으면

프로세스 종료 안된다.

 싱글 스레드 애플리케이션은 메인스레드가 

종료 되면 프로세스 종료


'Java' 카테고리의 다른 글

[제너릭]와일드카드 타입  (0) 2017.02.17
[제너릭]제너릭 메소드  (0) 2017.02.16
[제너릭] 제너릭과 비제너릭 비교  (0) 2017.02.15
Thread 상속으로 thread 생성  (0) 2017.01.27
Runnable을 이용한 Thread 생성 방법들  (0) 2017.01.25

+ Recent posts