QTcpServer 및 QTcpSocket 위에 구현 된 FTP 서버가 있습니다.별도의 스레드에서 각 TCP 연결을 처리하면 대기 시간이 향상됩니까?
단일 스레드가 있어도 신호와 슬롯 메커니즘을 이용하여 동시에 여러 TCP 연결을 지원합니다. 내 코드는 가능한 한 빨리 이벤트 루프에 반환하고 블록하지 않으며 (대기 함수 없음) 중첩 된 이벤트 루프를 사용하지 않습니다. 그런 식으로 내가 이미 협력 멀티 태스킹, Win3.1 응용 프로그램과 같은했다.
그러나 다른 많은 FTP 서버는 멀티 스레드입니다. 이제 별도의 스레드 각 TCP 연결을 처리 성능을 향상시키는 데 사용하는 경우, 특히 대기 시간 궁금하네요.
한편으로 스레드는 새로운 연결마다 새 스레드를 시작해야하기 때문에 대기 시간이 늘어나지 만 다른 한편으로는 협력 멀티 태스킹을 사용하면 다른 TCP 연결이 주 루프로 돌아갈 때까지 대기해야합니다 readyRead()
/bytesWritten()
신호를 처리 할 수 있습니다.
"지연 시간"을 개선 했습니까? 아니요. '반응성'을 향상 시키시겠습니까? 읽기만 차단할 때만 가능합니다. 소켓 I/O가 UI를 차단합니다. 그것은 여기에있는 것처럼 보이지 않습니다. – paulsm4