Название: QThread::exec, вызов event loop из разных потоков Отправлено: orlangur от Июнь 13, 2010, 23:28 Доброго времени суток!
Вопрос возник по поводу потоков в Qt. В одном проекте пользовался asio для асинхронной работы с сетевыми соединениями в режиме сервера. Обрабатывалось некоторое количество одновременных таких соединений. Использовалось несколько потоков для выполнения метода run объекта ioservice и обратные вызовы могли выполняться из любого из них, и в результате несколько соединений могли обрабатываться одновременно. Вопрос закючается в следующем: можно ли подобное делать в Qt, если я, скажем, через QNetworkAccessManager выполняю несколько параллельных запросов (которые обрабатываться так же могут параллельно) к разным ресурсам? Может вызвать QThread::exec для одного и того же QThread объекта из фактически разных потоков...? или есть другие пути? Название: Re: QThread::exec, вызов event loop из разных потоков Отправлено: niXman от Июнь 14, 2010, 01:05 вряд ли в кют можно что-то подобное сделать.
UP. о какой технологичный говнокод получился :o - Код
Название: Re: QThread::exec, вызов event loop из разных потоков Отправлено: orlangur от Июнь 14, 2010, 13:33 вряд ли в кют можно что-то подобное сделать. UP. о какой технологичный говнокод получился :o - Фига-се... это по C++1X (почти)стандарту? только я смысла примера не понял, применительно к вопросу... Название: Re: QThread::exec, вызов event loop из разных потоков Отправлено: niXman от Июнь 14, 2010, 13:37 Цитировать это по C++1X (почти)стандарту? с++0хэто рабочий пример. немного обфускаблен(или как это слово сказать?), намеренно :) Цитировать только я смысла примера не понял, применительно к вопросу... копирует файл в отдельном потоке. сам освобождает ресурсы и завершает поток при выходе из области видимости.повторяюсь: код абсолютно рабочий. но реально применять его не советую. есть более правильные решения :) Название: Re: QThread::exec, вызов event loop из разных потоков Отправлено: orlangur от Июнь 14, 2010, 13:45 Цитировать с++0х Нынче уже 10-й год, а стандарт все еще не стандарт :), так что наверное все же C++1XЦитировать копирует файл в отдельном потоке. сам освобождает ресурсы и завершает поток при выходе из области видимости. эм... суть вопроса была в том: можно ли организовать выполнение цикла обработки сообщений (одного и того же) из разных потоков (по аналогии с boost::asio ioservice'овским методом run), чтобы была возможность параллельно обрабатывать те же сетевые запросы через QNetworkAccessManager. Название: Re: QThread::exec, вызов event loop из разных потоков Отправлено: niXman от Июнь 14, 2010, 14:25 ой, епс ;D
я не туда запостил ::) это имел ввиду: http://www.prog.org.ru/topic_13964_0.html по поводу boost::asio::io_service согласен. но не уверен что получится заставить QNetworkAccessManager обрабатывать свои соощения в нескольких потоках. |