개체 풀과 연결 풀의 정확한 차이점은 무엇입니까? 메모리 활용에 대한 알고리즘에 어떤 차이가 있습니까? msdn에서 "개체 풀링을 사용하면 최대 연결 수를 제어하는 연결 풀링과 달리 사용하는 연결 수를 제어 할 수 있습니다." 정확히 무슨 뜻입니까?개체 풀 대 연결 풀
위의 설명을 도와주세요.
개체 풀과 연결 풀의 정확한 차이점은 무엇입니까? 메모리 활용에 대한 알고리즘에 어떤 차이가 있습니까? msdn에서 "개체 풀링을 사용하면 최대 연결 수를 제어하는 연결 풀링과 달리 사용하는 연결 수를 제어 할 수 있습니다." 정확히 무슨 뜻입니까?개체 풀 대 연결 풀
위의 설명을 도와주세요.
연결 풀은 연결 개체가 포함 된 개체 풀입니다.
"개체 풀링을 사용하면 도달 한 최대 수를 제어하는 연결 풀링과 달리 사용하는 연결 수를 제어 할 수 있습니다."
개체 풀을 사용하면 응용 프로그램에서 한 번에 사용중인 인스턴스 수를 제한 할 수 있습니다. 응용 프로그램이 제한보다 많은 인스턴스를 필요로하는 경우, 객체 풀은 해당 문제를 처리하는 방법을 결정해야합니다. 가능한 전략은 여러 가지가있을 수 있습니다
의 크기를 늘릴 수 있습니다 객체 풀이므로 정확히 동일한 결정을 내립니다.
개체 풀 (또는 연결 풀)의 특정 구현은 이러한 전략 중 하나 또는 여러 가지 조합을 사용할 수 있습니다.
특정 구현에 대해 언급하지 않는 한 내 의견으로는 인용문이 오해의 소지가 있습니다.
간단한 오브젝트 풀 예
풀은 일부 구성 매개 변수가 있습니다. 단순한 풀은 minimum_size와 maximum_size를 가질 수 있습니다. 풀을 처음 사용할 수있게되면 minimum_size 개체가 포함됩니다. 클라이언트가 이러한 객체를 요청할 때 풀에는 할당되지 않은 객체가 거의 포함되지 않습니다. 이 번호는 클라이언트가 개체를 풀에 반환 할 때도 증가 할 수 있습니다.
어떤 시점에서 풀은 할당되지 않은 객체가없는 상태에 도달 할 수 있지만 하나 이상의 클라이언트가 객체를 요청할 수 있습니다. 이 시점에서 풀이 maximum_size에 도달하지 않는 한, 새로운 개체를 만들어 풀에 추가 할 수 있습니다. 이제 클라이언트에 객체를 반환 할 수 있습니다.
풀이 maximum_size에 도달하면 풀 크기를 늘릴 수 없기 때문에 다른 방식으로 클라이언트를 처리해야합니다. 즉, ObjectPoolExhausted 예외가 발생한다고 가정 해 봅시다.
잠시 후 일부 클라이언트는 개체를 풀로 반환하고 개체가 다시 없어 질 때까지 계속 수행 할 수 있습니다. 위로 질문에
은 MSDN 문서는 특정 오브젝트 풀 구현은 지정된 최대까지 풀의 크기를 증가 할 것으로 말하고있다.최대치에 도달하면 위의 예제와 달리 예외를 throw하는 대신 클라이언트가 객체가 풀로 반환 될 때까지 기다린 다음 새로 반환 된 객체를 대기중인 클라이언트에 제공합니다.
MSDN 기사에서는 특정 연결 풀 구현에 최대 크기 매개 변수가 없다고 말합니다. 요구 사항을 충족시키기 위해 새로운 연결을 계속 생성합니다. 결국 일부 시스템 제한이 발생하고 요청이 어떤 식 으로든 실패합니다. t 지정).
답장을 보내 주셔서 감사합니다. Richj.I msnn의 또 다른 성명서에서 "연결 풀링을 사용할 때 같은 스레드에 생성되므로 수영장에 아무것도 없으면 연결이 생성됩니다. 개체 풀링을 사용하면 풀은 새로운 객체를 생성 할 수 있지만 이미 최대 값에 도달했다면 다음으로 사용할 수있는 객체를 제공합니다. 이것은 객체를 만드는 데 오랜 시간이 걸리지 만 매우 유용하지는 않습니다. 오래. "Richj 당신이 이것을 구현 한 적이 있다면 그들이 얼마나 다른지 말해 줄 수 있습니까? – Ritu
안녕하세요. MSDN 문서에 대한 링크를 게시하십시오. 특정 구현에 대해 이야기하고 있다고 생각합니다. 이러한 문은 일반적인 경우 개체 및 연결 풀에 적용될 때 올바르지 않습니다. – richj
답장을 보내 주셔서 감사합니다. MSDN 링크는 http://msdn.microsoft.com/en-us/library/ff7105zk%28VS.80%29.aspx – Ritu
어떤 플랫폼입니까? 어떤 언어? – Oded