JAVA

Java Thread (Last Updated : 2021.07.27)

k9e4h 2016. 3. 23. 14:38

Q. start , run 차이

run은 로직을 한번 실행하지 thread 객체를 생성하지 않는다

 

start() : 새로운 쓰레드가 작업을 실행하는데 필요한 호출스택(공간)을 생성 // 만들기만하는것

run() : 위에서 만든 공간 안(스택)에 run()이 저장되는 것이다. // 정말 실행

 

start()하면 run()도 실행됨

 

쓰레드를 사용하기 위해 start()를 실행시키는 순간 쓰레드만의 독립적인 작업 공간인 호출스택이 만들어지는 것이다. 그 후에 호출 스택안에 각 실행하고자 하는 예를 들면 run()과 같은 메소드들이 저장되는 것이다.

 모든 쓰레드는 독립적인 작업을 수행하기 위해 자신만의 호출스택을 필요로 하기 때문에, 새로운 쓰레드를 생성하고 호출 스택에 있는 내용들이 모두 수행하고 나면 쓰레드는 호출스택 공간과 함께 메모리 상에서 소멸된다.

 

http://lucetedaniel.tistory.com/entry/JAVAThread-start-run


Q. Thread 생성 방법

 

방법 01 - 별도의 Runnable 인터페이스를 구현한 클래스를 만드는 방법

Task안에 오버라이딩 되어있는 run()메서드를 실행시킬 것이다.

주석에서도 알 수 있듯이 Thread는 start()메서드를 호출해줘야 비로소 실행된다.

 

방법 02 - Runnable 인터페이스를 익명 객체를 매개값으로 사용하는 경우.

익명클래스를 이용하여 따로 클래스를 패키지 밖에 구현하지않고 

작업스레드 thread_02를 만드는 순간 매개변수로 run()메서드를 오버라이딩

 

https://wakestand.tistory.com/94


 

Q.

thread.join -> 호출된 스레드가 완료될때까지 해당 스레드를 재호출하지 않는다

 

 

Q. Java ExcutorService

https://veneas.tistory.com/entry/Java-Executors-Thread-%EC%82%AC%EC%9A%A9%EB%B2%95

 

 

참고링크

 

http://itdexter.tistory.com/133

https://defacto-standard.tistory.com/1191
https://honbabzone.com/java/java-thread/

반응형

'JAVA' 카테고리의 다른 글

[BOWER] bower 설치  (0) 2016.04.05
정리해야할 것  (0) 2016.03.23
[java01] Server/Network 기초  (0) 2016.03.23
[#4] Association(HasA) & Dependency 관계  (0) 2016.03.22
AOP  (0) 2016.03.18