170 похожих чатов

Есть 2 отдельных потока. Один пишет в массив/очередь, другому нужно

при поступлении новых данных в этот массив/очередь - сразу их начать обрабатывать.

Сейчас это решено через while , в котором постоянно идет проверка нет ли новых данных. Но даже со sleep - бесконечность while слишком грузит проц. Да и как то кривовато мне кажется решение со sleep-ами.

Как можно подать знак второму потоку что пора ему считать данные? Чтобы он не грузил проц в постоянном проверянии обновлений?

18 ответов

11 просмотров

Предложение немного из другой степи, но на qt подобное реализуется через сигнально слотовую систему. Говорят, что это паттерн наблюдатель. А если на десктоп пишешь программу обработки данных по ком порту и ещё не поздно, то советую смотреть в сторону qt, как сделал однажды я =) такие вопросы из коробки решаются

jon pedro
Предложение немного из другой степи, но на qt подо...

Да, проще всего будет решить проблему через этот паттерн

Виктор-Nekrasov Автор вопроса
jon pedro
Предложение немного из другой степи, но на qt подо...

Понял, спасибо. Как раз за изучение qt взялся. Переделывать поздновато, но, на поздних стадиях реализации столкнулся с тем что комп дико тормозить начинает. Так что придется. Кстати, по результатам испытаний, раюота с массивами примерно на 30% быстрее оказалась, чем работа с векторами. И памяти меньше ест.

Виктор Nekrasov
Понял, спасибо. Как раз за изучение qt взялся. Пер...

Я бы не закладывался на твои бенчмарки, да и странно сравнивать работу с массивом и вектором — они для разных целей

Виктор Nekrasov
Почему не закладывался бы?

Потому что бенчмарки легко сделать неправильно и сложно правильно

Без ивентов ты это не сделаешь без бизи вейта, а ивентов нет в стандарте, Хотя конечно можно через атомики ещё... Не, нельзя

mutex + condition variable + atomic_bool

Виктор-Nekrasov Автор вопроса
Ilya Zviagin
Чета как бред звучит

Что именно как бред звучит?

Виктор Nekrasov
Что именно как бред звучит?

что работа с массивами на 30% быстрее, чем с векторами

Виктор-Nekrasov Автор вопроса
Alexander "SonnySlave" Zaitsev
что работа с массивами на 30% быстрее, чем с векто...

Почему? Вектор, вроде более сложная структура, больше памяти занимает. И лежит в куче, а не на стеке.

Виктор Nekrasov
Почему? Вектор, вроде более сложная структура, бол...

ну я хз, что такое "работа" в твоём случае, но даже эта разница играть роли не должна

Виктор Nekrasov
Что именно как бред звучит?

Вот это Кстати, по результатам испытаний, работа с массивами примерно на 30% быстрее оказалась, чем работа с векторами. И памяти меньше ест

Ilya Zviagin
Вот это Кстати, по результатам испытаний, работа...

+ Ну вот, теперь неделю спать не смогу, буду думать что такого мог джун (да пусть даже мидл) сделать с массивами, что оно аж на треть быстрее чем с векторами. Наверное, пора уже мыслить как сеньеру и спрашивать: что он такое творит с векторами, что они у него такие медленные?

Mikhail Kalugin
+ Ну вот, теперь неделю спать не смогу, буду думат...

Говнокод написать - дело нехитрое. Бросил в тело цикла создание вектора, вместо массива - вот, уже деградация

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта