2009-06-01 10 views
2

다음 개념이 일반적으로 Java EE 컨테이너에서 어떻게 실행되는지, 하나의 요청마다 하나의 인스턴스가 생성되는지 또는 하나의 인스턴스가 모든 요청을 처리하는지 궁금하십니까?Java EE webapps 스레딩

  • 서블릿
  • 태그

나는 최근에 내가 그것을 스레드로부터 안전하지 않기 때문에 모두 StringBuilder를 피하고, 내 사용자 정의 태그에 StringBuffers를 많이 사용하고 있기 때문에이 문제를 알고 싶어요. Id는이 물건이 어떻게 작동하는지 확실히 알고 싶습니다. 그래서 더 좋은 코드를 쓸 수 있습니다.

답변

3

둘 다 맞습니다. 컨테이너는 새로운 요청에 대해 이전 인스턴스를 재사용 할 수 있으며 더 많은 요청이 제공 될 경우 새 인스턴스를 만들 수도 있습니다.

StringBuilder는 정적 사용법, StringBuilder 등을 반환하여 인스턴스 경계를 ​​넘지 않는 한 안전해야합니다. 문자열 출력을 생성하는 함수/메소드를 사용하고 있다면 그렇게 할 수 있습니다.

1

일부 앱 서버는 스레드 풀링을 구현합니다. 스레드 풀링은 스레드 풀마다 특정 수의 요청을 실행하고 필요에 따라로드를 전환합니다. 간단한 엔진은 요청 당 스레드를 스풀링합니다. 그러나 다중 스레드에서 동시에 StringBuilder에 액세스하지 않으면 스레드 안전과 관련하여 절대로 문제가 발생하지 않아야합니다.