Russian Qt Forum
Май 15, 2024, 22:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 3 4 [5] 6 7 ... 17   Вниз
  Печать  
Автор Тема: Igors, это ты? :)  (Прочитано 116058 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #60 : Август 29, 2018, 15:54 »

Класс. Улыбающийся
Очередное одноразовое решение, которое уже завтра пойдет в корзину... Улыбающийся
Завтра мы поняли, что нам нужно маштабировать решение и у нас теперь 10 производителей и 20 потребителей. Все перепишем? Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #61 : Август 29, 2018, 16:06 »

Завтра мы поняли, что нам нужно маштабировать решение и у нас теперь 10 производителей и 20 потребителей. Все перепишем? Улыбающийся

Или не нужно будет масштабировать:)
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #62 : Август 29, 2018, 16:11 »

Или не нужно будет масштабировать:)
Но тут от подхода зависит. Можно один раз написать нормально и через какое то время просто изменить значения пары констант, а можно написать одноразово и надеятся что поток кто то перепишет нормально. Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #63 : Август 29, 2018, 16:14 »

Или не нужно будет масштабировать:)
Но тут от подхода зависит. Можно один раз написать нормально и через какое то время просто изменить значения пары констант, а можно написать одноразово и надеятся что поток кто то перепишет нормально. Улыбающийся

#define нормально. С моей колокольни кажется, что вы предлагаете заниматься оверинженирингом ради premature optimisation.
Далеко не факт что именно это место будет узким местом.
Но да, какая-нибудь универсальная очередь может и решит задачу (эвентлуп с блокирующим ожиданием, наверное, решит). Но это если кто-то добрый написал эту очередь; писать её только под эту задачу с мыслью "когда-нибудь мы ее замасштабируем и переюзаем" - ну такое, похоже у вас оч много свободного времени:)
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #64 : Август 29, 2018, 16:19 »

Авварон, эта очередь пишется за 10 минут (это несколько десятков строк кода). Я сейчас с телефона, поищите тему про самодельные очереди, там это все обсуждалось. И было еще несколько тем, в одной я такую очередь выкладывал полностью. Не найдете я выложу универсальную.
« Последнее редактирование: Август 29, 2018, 16:21 от Old » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #65 : Август 29, 2018, 16:27 »

Авварон, эта очередь пишется за 10 минут (это несколько десятков строк кода). Я сейчас с телефона, поищите тему про самодельные очереди, там это все обсуждалось. И было еще несколько тем, в одной я такую очередь выкладывал полностью. Не найдете я выложу универсальную.

Ну, очевидно, что очередь в десяток строк кода не имеет всей полноты функционала, который можно придумать:)
Как например то, что в случае очереди событий одно событие может обрабатываться по разному разными объектами, очередь задач этого не умеет.
Чейнить задачи - тоже весьма полезная фича (чего, например, не умеют QFuture/std::future, а дустовые, вроде, умеют).
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #66 : Август 29, 2018, 16:52 »

А какой функционал там нужен, если нам нужно положить некий функциональный объект в очередь + разбудить спяших и выташить этот объект из очереди? А дальше запускай его - как он что будет обрабатывать зависит исключительно от этого функционального объекта.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #67 : Август 29, 2018, 16:52 »

Никаких заморочек, знай себе открывай-закрывай семафоры, все совершенно естественно. Но увы, зная собеседников, уверен что это будет охаяно, ведь в великом std такого нет...

std::mutex? не, не слышал.
если заменить им ваш семафор, будет ровно тоже самое.




Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #68 : Август 29, 2018, 16:56 »

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

тут какой то фейл.

"очередь событий" это и есть "очередь задач".
задача сама знает как себя исполнять.

"события" которые по разному обрабатывают разные "объекты" - не нужны.


Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #69 : Август 29, 2018, 18:21 »

"события" которые по разному обрабатывают разные "объекты" - не нужны.

Скажите это любой гуи-библиотеке или игровому движку:)
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #70 : Август 29, 2018, 18:41 »

"события" которые по разному обрабатывают разные "объекты" - не нужны.

Скажите это любой гуи-библиотеке или игровому движку:)

сказал своим.
они ответили: мухи отдельно, котлеты отдельно.
событийно-управляемая модель ортогональна тред-пулу.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #71 : Август 29, 2018, 19:12 »

сказал своим.
они ответили: мухи отдельно, котлеты отдельно.
событийно-управляемая модель ортогональна тред-пулу.
Какой мудрый ответ! И главное - оригинальный и остроумный Улыбающийся Про мухи и котлеты никто еще не додумался! Но вернемся к (сопливой) задачке
Цитировать
- сделать 2 нитки, одна принимает символ с клавы, другая печатает
Задача поставлена конкретно - 2 нитки. Чего базарить? Сказано для 2 - делайте для 2. Сказано для N - делайте для N. Разумеется это уже до задача, и заказчик обязан сформулировать внятные требования - а кто кого тогда должен печатать. А Вы обязаны снять с него за это еще бабло. Не надо лезть с решениями "на все случаи жизни" - можно (мягко) предложить -и быстренько заткнуться если нет понимания. Тише едешь - дальше будешь

Если же чисто технически - то схема семафора вполне хороша и здесь. Небольшим ее минусом обычно является то что может потребоваться еще блокировка для доступа к данным - ну это не смертельно
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #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 Offline

Сообщений: 4349



Просмотр профиля
« Ответ #73 : Август 29, 2018, 19:24 »

и заказчик обязан сформулировать внятные требования - а кто кого тогда должен печатать.
Как вы ловко в воздухе переобуваетесь. Улыбающийся
Вы же сами в большинстве своих тем рассказываете, что заказчик ничего не знает и сформулировать ничего не может. Нужно самим дорабатывать. Улыбающийся
Не всегда заказчик с разработчиком могут оценить нагрузки. На примере интернет проектов, заказчик планировал что посещаемость сайта будет 100 человек в день, а через месяц она выросла до 10000 человек в день. Что ему делать, закрывать проект и приглашать нормальных программистов? Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #74 : Август 29, 2018, 22:28 »

сказал своим.
они ответили: мухи отдельно, котлеты отдельно.
событийно-управляемая модель ортогональна тред-пулу.


Не совсем, есть ряд задач, которые решаются пулом и воркерами, подписанными на бродкаст сообщений. К примеру, торговая площадка - у вас происходит сделка и надо её обработать; в каком потоке это делать - всё равно (тредпул), а вот как её обрабатывать - нет (один или несколько воркеров).
Записан
Страниц: 1 ... 3 4 [5] 6 7 ... 17   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.219 секунд. Запросов: 22.