2011-01-29 4 views
6

나는 내 기본 질문에 착수하기 전에 기본적인 질문을하고 싶다.서블릿에서 스레드를 생성 할 수 있습니까?

내가 주 함수에서 스레드를 생성하는 간단한 Java 프로그램을 실행하고 있다고 가정 해 보겠습니다. 주 기능이 완료되면 스레드가 계속 실행됩니까? 스레드간에 부모/자식 관계 개념이 있습니까?

난 요청 (5 분)을 처리 할 오래 걸리는 서블릿있다. 주 서블릿에서 백그라운드 스레드를 생성하여 & 작업을 곧 처리 할 수 ​​있습니까? 주 서블릿이 처리를 마친 후에도 백그라운드 스레드가 계속 실행됩니까? 당신이 당신의 응용 프로그램이 여전히 실행 스레드에도 불구하고 종료 할 때

답변

2
  • 이이보다 효율적으로 만들기 위해 스레드 풀을 고려하는 것이 좋습니다,하지만 당신은 그것에 컨트롤을 많이하지 않아도 할 경우 . 예를 들어 스레드 계층 구조에 대한 변수를 저장할 수있는 InheritableThreadLocal이 있습니다.

  • 당신은 서블릿에서 새로운 스레드를 생성 할 수 있습니다. 서블릿 3.0을 사용하여, 그 asynchronous processing 기능을 살펴 경우 자바 5 개 집행 프레임 워크

  • 을 선호합니다.

4

, 당신은 데몬 스레드로 스레드를 표시이 :

 
Thread t = new Thread(myRunnable); 
t.setDaemon(true), 
t.start(); 

당신이 응용 프로그램에서 그렇게 할 때 특히 중요하다 서버가 아니면 서버를 종료 할 수 없습니다!

당신은 반복해서 부모와 자식 스레드와 같은 일이

관련 문제