Russian Qt Forum
Ноябрь 25, 2024, 12:07
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Igors, это ты? :)
Страниц:
1
...
3
4
[
5
]
6
7
...
17
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Igors, это ты? :) (Прочитано 132467 раз)
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Igors, это ты? :)
«
Ответ #60 :
Август 29, 2018, 15:54 »
Класс.
Очередное одноразовое решение, которое уже завтра пойдет в корзину...
Завтра мы поняли, что нам нужно маштабировать решение и у нас теперь 10 производителей и 20 потребителей. Все перепишем?
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Igors, это ты? :)
«
Ответ #61 :
Август 29, 2018, 16:06 »
Цитата: Old от Август 29, 2018, 15:54
Завтра мы поняли, что нам нужно маштабировать решение и у нас теперь 10 производителей и 20 потребителей. Все перепишем?
Или не нужно будет масштабировать:)
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Igors, это ты? :)
«
Ответ #62 :
Август 29, 2018, 16:11 »
Цитата: Авварон от Август 29, 2018, 16:06
Или не нужно будет масштабировать:)
Но тут от подхода зависит. Можно один раз написать нормально и через какое то время просто изменить значения пары констант, а можно написать одноразово и надеятся что поток кто то перепишет нормально.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Igors, это ты? :)
«
Ответ #63 :
Август 29, 2018, 16:14 »
Цитата: Old от Август 29, 2018, 16:11
Цитата: Авварон от Август 29, 2018, 16:06
Или не нужно будет масштабировать:)
Но тут от подхода зависит. Можно один раз написать нормально и через какое то время просто изменить значения пары констант, а можно написать одноразово и надеятся что поток кто то перепишет нормально.
#define нормально. С моей колокольни кажется, что вы предлагаете заниматься оверинженирингом ради premature optimisation.
Далеко не факт что именно это место будет узким местом.
Но да, какая-нибудь универсальная очередь может и решит задачу (эвентлуп с блокирующим ожиданием, наверное, решит). Но это если кто-то добрый написал эту очередь; писать её только под эту задачу с мыслью "когда-нибудь мы ее замасштабируем и переюзаем" - ну такое, похоже у вас оч много свободного времени:)
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Igors, это ты? :)
«
Ответ #64 :
Август 29, 2018, 16:19 »
Авварон, эта очередь пишется за 10 минут (это несколько десятков строк кода). Я сейчас с телефона, поищите тему про самодельные очереди, там это все обсуждалось. И было еще несколько тем, в одной я такую очередь выкладывал полностью. Не найдете я выложу универсальную.
«
Последнее редактирование: Август 29, 2018, 16:21 от Old
»
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Igors, это ты? :)
«
Ответ #65 :
Август 29, 2018, 16:27 »
Цитата: Old от Август 29, 2018, 16:19
Авварон, эта очередь пишется за 10 минут (это несколько десятков строк кода). Я сейчас с телефона, поищите тему про самодельные очереди, там это все обсуждалось. И было еще несколько тем, в одной я такую очередь выкладывал полностью. Не найдете я выложу универсальную.
Ну, очевидно, что очередь в десяток строк кода не имеет всей полноты функционала, который можно придумать:)
Как например то, что в случае очереди событий одно событие может обрабатываться по разному разными объектами, очередь
задач
этого не умеет.
Чейнить
задачи
- тоже весьма полезная фича (чего, например, не умеют QFuture/std::future, а дустовые, вроде, умеют).
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Igors, это ты? :)
«
Ответ #66 :
Август 29, 2018, 16:52 »
А какой функционал там нужен, если нам нужно положить некий функциональный объект в очередь + разбудить спяших и выташить этот объект из очереди? А дальше запускай его - как он что будет обрабатывать зависит исключительно от этого функционального объекта.
Записан
_Bers
Бывалый
Offline
Сообщений: 486
Re: Igors, это ты? :)
«
Ответ #67 :
Август 29, 2018, 16:52 »
Цитата: Igors от Август 29, 2018, 15:40
Никаких заморочек, знай себе открывай-закрывай семафоры, все совершенно естественно. Но увы, зная собеседников, уверен что это будет охаяно, ведь в великом std такого нет...
std::mutex? не, не слышал.
если заменить им ваш семафор, будет ровно тоже самое.
Записан
_Bers
Бывалый
Offline
Сообщений: 486
Re: Igors, это ты? :)
«
Ответ #68 :
Август 29, 2018, 16:56 »
Цитата: Авварон от Август 29, 2018, 16:27
в случае очереди событий одно событие может обрабатываться по разному разными объектами, очередь
задач
этого не умеет.
тут какой то фейл.
"очередь событий" это и есть "очередь задач".
задача сама знает как себя исполнять.
"события" которые по разному обрабатывают разные "объекты" - не нужны.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Igors, это ты? :)
«
Ответ #69 :
Август 29, 2018, 18:21 »
Цитата: _Bers от Август 29, 2018, 16:56
"события" которые по разному обрабатывают разные "объекты" - не нужны.
Скажите это любой гуи-библиотеке или игровому движку:)
Записан
_Bers
Бывалый
Offline
Сообщений: 486
Re: Igors, это ты? :)
«
Ответ #70 :
Август 29, 2018, 18:41 »
Цитата: Авварон от Август 29, 2018, 18:21
Цитата: _Bers от Август 29, 2018, 16:56
"события" которые по разному обрабатывают разные "объекты" - не нужны.
Скажите это любой гуи-библиотеке или игровому движку:)
сказал своим.
они ответили: мухи отдельно, котлеты отдельно.
событийно-управляемая модель ортогональна тред-пулу.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Igors, это ты? :)
«
Ответ #71 :
Август 29, 2018, 19:12 »
Цитата: _Bers от Август 29, 2018, 16:56
сказал своим.
они ответили: мухи отдельно, котлеты отдельно.
событийно-управляемая модель ортогональна тред-пулу.
Какой мудрый ответ! И главное - оригинальный и остроумный
Про мухи и котлеты никто еще не додумался! Но вернемся к (сопливой) задачке
Цитировать
- сделать 2 нитки, одна принимает символ с клавы, другая печатает
Задача поставлена конкретно - 2 нитки. Чего базарить? Сказано для 2 - делайте для 2. Сказано для N - делайте для N. Разумеется это уже до задача, и заказчик обязан сформулировать внятные требования - а кто кого тогда должен печатать. А Вы обязаны снять с него за это еще бабло. Не надо лезть с решениями "на все случаи жизни" - можно (мягко) предложить -и быстренько заткнуться если нет понимания. Тише едешь - дальше будешь
Если же чисто технически - то схема семафора вполне хороша и здесь. Небольшим ее минусом обычно является то что может потребоваться еще блокировка для доступа к данным - ну это не смертельно
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Igors, это ты? :)
«
Ответ #72 :
Август 29, 2018, 19:17 »
Цитировать
cv.wait(lk, []{return ready;});
Write-only code detected.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Igors, это ты? :)
«
Ответ #73 :
Август 29, 2018, 19:24 »
Цитата: Igors от Август 29, 2018, 19:12
и заказчик обязан сформулировать внятные требования - а кто кого тогда должен печатать.
Как вы ловко в воздухе переобуваетесь.
Вы же сами в большинстве своих тем рассказываете, что заказчик ничего не знает и сформулировать ничего не может. Нужно самим дорабатывать.
Не всегда заказчик с разработчиком могут оценить нагрузки. На примере интернет проектов, заказчик планировал что посещаемость сайта будет 100 человек в день, а через месяц она выросла до 10000 человек в день. Что ему делать, закрывать проект и приглашать нормальных программистов?
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Igors, это ты? :)
«
Ответ #74 :
Август 29, 2018, 22:28 »
Цитата: _Bers от Август 29, 2018, 18:41
сказал своим.
они ответили: мухи отдельно, котлеты отдельно.
событийно-управляемая модель ортогональна тред-пулу.
Не совсем, есть ряд задач, которые решаются пулом и воркерами, подписанными на бродкаст сообщений. К примеру, торговая площадка - у вас происходит сделка и надо её обработать; в каком потоке это делать - всё равно (тредпул), а вот как её обрабатывать - нет (один или несколько воркеров).
Записан
Страниц:
1
...
3
4
[
5
]
6
7
...
17
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...