티스토리 뷰

언어/JAVA

[JAVA] 스레드(Thread)

Sime 2016. 9. 22. 09:43

스레드는 동시에 여러개의 프로그램을 실행하는 효과를 낸다.

프로세스는 최소 하나의 스레드를 가지 있음.

프로세스 : 프로그램 실행의 최소 단위


병령 처리에는 다중 프로세스다중 스레드다 있다.


다중 스레딩은 하나의 프로그램이 동시에 여러 가지 작업을 할 수 있도록 하는 것

스레드는 프로세스 안쪽에 존재한다.


스레드와 프로세스의 차이점

-프로세스는 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와 공유하지 않는다.
-쓰레드는 해당 쓰레드를 위한 스택을 생성할 뿐 그 이외의 Code, Data, Heap영역을 공유한다.


<예제 1 - Thread 사용>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
class Counting extends Thread{
    @Override
    public void run() {
        for(int i =0; i< 10;i++){
            System.out.println(i);
        }
    }
}
 
public class Test {
    public static void main(String[] args) {
        Thread t = new Counting();
        t.start();
    }
}
 
cs



결과 : 

0

1

2

3

4

5

6

7

8

9




<예제 2 - Runnable 사용>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Counting2 implements Runnable{
    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println(i);
        }
    }
}
 
public class ThreadTest2 {
    public static void main(String[] args) {
        Thread r = new Thread(new Counting2());
        r.start();
    }
}
 
cs

결과 : 
0
1
2
3
4
5
6
7
8
9


자바에서 다중 상속이 불가능 한 것을 감안한다면 Runnable 인터페이스를사용하는 것이 좋다!!!


반응형

'언어 > JAVA' 카테고리의 다른 글

[JAVA] 정규식  (0) 2016.09.22
[JAVA] synchronized  (0) 2016.09.22
[JAVA] 해쉬맵(HashMap)  (0) 2016.09.20
[JAVA] ArrayList와 LinkedList  (0) 2016.09.20
[JAVA] 컬렉션  (0) 2016.09.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함