2011-01-25 5 views
1

고객이 응용 프로그램의 특성에 대한 세부 정보를 제공하지 않았습니다. 은 멀티 스레드 될 수 있습니다. 그의 서버는 SOAP 메시지 (http 요청)를 서비스합니다.원격 서버가 멀티 스레드인지 어떻게 알 수 있습니까?

피어가 싱글 또는 멀티 스레드인지 이해하기 위해 특별한 트릭이 있습니까?

나는 고객에게 묻고 싶지 않으며 나는 그의 서버/기계에 액세스 할 수 없다. 나는 그것을 스스로 찾고 싶다.

+4

왜 당신에게 중요한가요? – YeenFei

+0

나는 요청의 순서와 기능의 수행에 관심이있다. – cateof

+0

또한, 어떤 종류의 연결 풀을 사용할 수 있습니다. –

답변

4

그것은 중요하지 않습니다. 왜 그게 너에게 중요한 것 같니?

더 유용한 질문은 다음과 같습니다

서버가 여러 동시 세션을 받아 들일 수 있습니까?

대답은 '물론의, 예'가 될 가능성이 있지만 여러 세션을 지원하는 능력이있어 서버를 구현하기 위해 확실히 가능합니다.

서버가 여러 세션을 지원하기 때문에 그것이 다중 스레드임을 의미하지는 않습니다. 멀티 스레드이기 때문에 성능이 좋은 것은 아닙니다. 서버가 수 백 또는 수천 개의 세션을 지원해야하는 경우 멀티 스레딩은 성능면에서 매우 좋지 않습니다.

동일한 연결에서 SOAP 메시지를 '겹치기'를 원하기 때문에이 질문을 하시겠습니까? 즉, 3 개의 스레드가 요청을 보내고 3 개 모두가 응답을 기다리고 있습니까? HTTP와 마찬가지로 요청 및 응답 메시지가 각 연결에서 함께 페어링되기 때문에 작동하지 않습니다. 3 개의 중첩 된 메시지를 가지려면 세 개의 연결을 열어야합니다.

+0

분석해 주셔서 감사합니다. 그렇다면 서버가 여러 개의 동시 세션을 허용 할 수있는 방법은 무엇일까요? – cateof

+1

한 번에 두 개의 연결을 시도해보십시오. 두 번째가 실패하면 알게 될 것입니다. 그리고이 테스트는 하나의 스레드에서 수행 할 수 있습니다. – Roddy

0

불행히도, 아니요, 적어도 컴퓨터에 직접 액세스하지 않아도됩니다. 다중 연결은 단일 스레드로 관리 할 수도 있지만 좋은 소식은 이것이 거의 없을 것입니다. 대부분의 서버는 스레드 풀링을 사용하고 핸드 셰이크가 발생하면 연결에 스레드를 할당합니다. 왜 당신이 알아야 할 특별한 이유가 있습니까? 이 서버에서 작업 할 예정이라면 어떻게 작동하는지 직접 알 수 있습니다.

+0

그의 구현이 단일 스레드라면 나는 또한 하나의 스레드를 구현할 것이다. – cateof

+0

무슨 목적으로? 당신은 서버와 대화하기위한 프로그램을 작성하고 있습니까? 한 번에 여러 개의 연결을 사용하려는 경우에만 여러 개의 스레드가 필요하지만, 필요하지는 않은 경우가 더 많습니다.서버 만 클라이언트가 아닌 다중 연결에 대해 걱정해야합니다. – Neil

0

서버가 멀티 스레드인지 여부는 중요하지 않습니다. 스레드가없는 I/O 멀티플렉싱 (예 : select (2) 등)을 구현할 수있는 효율적이고 효율적인 방법이 있습니다.

관련 문제