2012-09-28 1 views
0

다른 사람이 작성한 웹 응용 프로그램을 지원하며 재미있는 행동을보고 있습니다. 응용 프로그램은 struts, spring mvc 및 tomcat을 응용 프로그램 서버로 사용합니다.웹 응용 프로그램에 대한 다중 스레드 요청을 통한 스레드 순서 지정

웹 앱은 타사에서 프레임으로 표시하고 링크를 통해 액세스합니다.

링크를 클릭하면 두 개의 요청이 두 개의 스레드에서 바람둥이에게 전송됩니다. 하나의 스레드는 사용자를 인증하고 데이터를 초기화합니다. 다른 스레드는 초기화 된 데이터를 사용하여 화면을 렌더링합니다.

문제점 : 때때로 종속 스레드가 시작되어 화면에 오류가 표시되는 경우가 있습니다. 그러나 초기화 스레드가 여전히 처리 중이며 종속 스레드 이후에 완료되면 결과가 사용자에게 반환되고 해당 데이터가 화면에 표시됩니다. 문제는 초기화 스레드가 실행되는 동안 표시되는 오류입니다.

질문 : 이 동작은 struts 또는 Spring MVC의 고유 한 기능입니까? 이 문제를 일으키는 응용 프로그램에서 아무것도 볼 수 없습니다.

저는 개인적으로 하나의 스레드를 시작하고 동기화 호출에서 초기화 및 표시를하고 싶습니다.

미리 도움을 청하십시오.

+0

링크를 클릭하면 Tomcat에 2 개의 요청이 어떻게 생성됩니까? 좀 더 설명해 주시겠습니까? – Gray

답변

1

이것은 경쟁 조건이라고합니다. 스레드를 다루기 시작할 때 매우 일반적입니다. 그것은 당신이하고있는 것과는 아무런 관련이 없습니다. 그러나 실행중인 코드의 무작위 적 동작과 스레드가 실행을 결정하는 방법 중 무엇을 할 수 있습니다.

+0

이 대답과 Gray의 질문 사이에 제 3자가 불필요하게 두 개의 스레드를 시작하는 링크를 구현했다고 생각됩니다. 나는 그들이 그것을 어떻게하고 있는지 확신하지 못한다. 그러나 나는 그들이 틀림 없다고 확신한다. 모두에게 감사드립니다. – peekay

관련 문제