2012-07-24 3 views
0

특정 std :: thread의 네트워크 사용 우선 순위 수준을 설정하는 방법이 있습니까? 예 : 여러 스레드에서 정보를 다운로드하고 있지만 특정 정보를 더 빠르게 다운로드 할 수 있도록 일부 스레드에서 동일한 네트워크 사용량을 가져야하는 것은 아닙니다.C++ 스레드 네트워크 우선 순위

+1

일반적으로 '스레드 네트워크 우선 순위'와 같은 것은 없습니다. – bmargulies

+0

문제의 정확한 해결책은 구현에 따라 다릅니다. 내가 너라면, 전용 스레드가있는 네트워크 관리자를 사용하고 쓰기를 시도하는 각 스레드는 자체 버퍼를 가져 와서 데이터를 덤프합니다. 이 작업은 버퍼가 비울 때까지 (동 기적으로) 또는 데이터가 완전히 전송 될 때까지 (비동기 적으로) 차단 될 수 있습니다. 두 경우 모두, 네트워크 관리자는 네트워크 리소스를 스레드의 대기 데이터에 할당하여 적합한 것으로 간주합니다. – Wug

답변

3

스레드 문제가 아니므로 스레드 수준을 처리해서는 안됩니다. 대신 각 다운로드를 시작할 때 우선 순위를 정하는 방법을 명시해야합니다. 이를 수행하는 방법은 다운로드를 수행하는 방법과 네트워크에서 사용할 수있는 서비스 품질 (있을 경우)의 품질에 전적으로 달려 있습니다.

+0

맞습니다. 요청에 libcurl을 사용하고 있지만 다른 핸들보다 우선 순위를 높이는 방법을 찾지 못했습니다. ' 솔루션을 약간 다시 생각해 볼 필요가 있지만 시도해 볼 가치가있었습니다. :) – SMK

1

각각의 소켓 수신 버퍼 크기를 우선 순위에 따라 설정할 수 있습니다. 가장 높은 우선 순위의 소켓 버퍼 버퍼가 소켓 버퍼> = 대역폭 지연 제품인지 확인하십시오.

관련 문제