LINUX.ORG.RU

«Ассинхронность» QNetworkAccessManager

 ,


0

1

Создаю в потоке QThread несколько объектов QNetworkAccessManager и замечаю, что ОС создает отдельный поток для каждого объекта который создал сетевое соединение. Собираю на Qt-5.14.2, gcc 5.3.1 64x.

Я что-то делаю не так или это такая ассинхронность под капотом Qt?


Каждый QNetworkAccessManager держит внутри себя пул потоков. Если мне не изменяет память, там пул на 6 или 8 потоков. То есть, не стоит плодить экземпляры этого класса.

panter_dsd ★★★★
()
Ответ на: комментарий от panter_dsd

печально,хотел в http2, а придется делать велик на QSslSocket.
QSslSocket без потоков может на чистой ассинхронности?

ocr
() автор топика
Ответ на: комментарий от annulen

Нет, там один фоновый поток, который параллельно обслуживает несколько соединений

Что не излечивает GUI от лагов если все шлепать прямо в ui.

bhfq ★★★★★
()
Ответ на: комментарий от panter_dsd

https://github.com/qt/qtbase/blob/dev/src/network/ssl/qsslsocket.cpp

As a convenience, QSslSocket supports QTcpSocket's blocking functions waitForConnected(), waitForReadyRead(), waitForBytesWritten(), and waitForDisconnected(). It also provides waitForEncrypted(), which will block the calling thread until an encrypted connection has been established.

Кроме этого нет упоминаний о потоках. Можно делать вывод что может делать ассинхронность без создания потоков.

ocr
() автор топика
Ответ на: комментарий от panter_dsd

Поток появился в 4.8 и реализация принципиально не изменилась с тех пор. До этого все крутилось в главном потоке

annulen ★★★★★
()

Ассинхронность от слова ass?

akk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.