2013년 6월 9일 일요일

Thread

Thread
    : 프로세스가 하나 시작할려면 많은 자원이 필요하다. 만약 하나의 작업을 동시에 수행하려고 할 때 여러 개의 프로세스를 띄워서 실행하면 각각 메모리를 할당해주어야 한다. JVM은 기본적으로 아무런 옵션 없이 실행하면 OS마다 다르지만 36~64MB의 물리 메모리를 점유한다. 그에 반해서 쓰레드를 추가하면 1MB이내의 메모리를 점유한다. 그래서 쓰레드를 경량 프로세스라고 부른다.

Runnable 인터페이스와 Thread 클래스
    : run() : 쓰레드가 시작되면 수행되는 메소드
결과값이 항상 고정된 값이 나오는 것이 아님.
 
-> 쓰레드라는것을 start() 메소드를 통해서 시작했다는 것은 프로세스가 아닌 하나의 쓰레드를 JVM에 추가하여 실행한다는 것이다. 쓰레드를 기동시키는 runBasic() 메소드에서 runnable이라는 객체를 Thread 클래스의 start() 메소드로 시작한다. 이때 시작한 start() 메소드가 끝날 때까지 기다리지 않고 그 다음 줄에 있는 thread라는 객체의 start() 메소드를 실행한다. 이 줄도 마찬가지로 새로운 쓰레드를 시작하므로 run() 메소드가 종료될 때까지 기다리지 않고, 바로 다음줄로 넘어간다.


댓글 없음:

댓글 쓰기