Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
[C++] vector будет, а deque - нет 06.05.03 19:22 Число просмотров: 1265
Автор: L Статус: Незарегистрированный пользователь
|
>[C++] vector будет, а deque - нет
А я разве что-то говорил что-то про deque?
> Не надо велосипедов :-) Не надо обобщений.
Простым задачам - простые решения.
Тут, на самом деле, надо у автора интересоваться.
Если он из академического интереса этим занимается - тогда проще, канеш, пользовать готовое. Если нет - для такой простой вещи лучше написать своё, под задачу. Для некоторых задач, к примеру, лучше притормозить поток, генерящий данные, чем аллоцировать память.
|
<programming>
|
[C++] vector и многопоточность 21.04.03 18:17
Автор: Green Статус: Незарегистрированный пользователь
|
Есть некоторый vector. Один поток добавляет элементы в его конец, а другой - выбирает из головы, т.е. своеобразная очередь. Понимаю, что вариантов синхронзации может быть множество, но среди этого разнообразия хотелось бы получить самый оптимальный, ведь задача то тривиальная.
|
|
[C++] Раз уж эта тема опять поднялась 06.05.03 18:38
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
> Есть некоторый vector. Один поток добавляет элементы в его > конец, а другой - выбирает из головы, т.е. своеобразная > очередь. А ее "своеобразие" нельзя реализовать посредством std::queue? ;)
Про синхронизацию здесь уже сказали.
|
|
[C++] vector и многопоточность 06.05.03 18:21
Автор: L Статус: Незарегистрированный пользователь
|
> Есть некоторый vector. Один поток добавляет элементы в его > конец, а другой - выбирает из головы, т.е. своеобразная > очередь. Понимаю, что вариантов синхронзации может быть > множество, но среди этого разнообразия хотелось бы получить > самый оптимальный, ведь задача то тривиальная.
И твой вектор будет бесконечно распухать по мере поступления новых данных. Особенно это приятно, когда реализация STL пользует агрессивную модель выделения памяти.
напиши вокруг буфера минимальнейшую обертку. В числе прочего у тебя там будет целочисленный семафор, который показывает сколько данных готово к обработке, и указатель на начало текущего блока данных.
|
| |
[C++] vector будет, а deque - нет 06.05.03 18:46
Автор: amirul <Serge> Статус: The Elderman Отредактировано 06.05.03 18:49 Количество правок: 1
|
> И твой вектор будет бесконечно распухать по мере > поступления новых данных. Особенно это приятно, когда > реализация STL пользует агрессивную модель выделения > памяти. deque - кольцевой буфер. И расти будет только если интенсивность добавляющего потока будет выше интенсивности извлекающего.
> напиши вокруг буфера минимальнейшую обертку. В числе > прочего у тебя там будет целочисленный семафор, который > показывает сколько данных готово к обработке, и указатель > на начало текущего блока данных. Не надо велосипедов :-)
deque примерно так и работает
ЗЫ: Упомянутая queue по умолчанию как раз просто интерфейс к deque
|
| | |
[C++] vector будет, а deque - нет 06.05.03 19:22
Автор: L Статус: Незарегистрированный пользователь
|
>[C++] vector будет, а deque - нет
А я разве что-то говорил что-то про deque?
> Не надо велосипедов :-) Не надо обобщений.
Простым задачам - простые решения.
Тут, на самом деле, надо у автора интересоваться.
Если он из академического интереса этим занимается - тогда проще, канеш, пользовать готовое. Если нет - для такой простой вещи лучше написать своё, под задачу. Для некоторых задач, к примеру, лучше притормозить поток, генерящий данные, чем аллоцировать память.
|
|
[C++] По-моему, без вариантов - сажаешь на целый vector мьютекс 21.04.03 18:39
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
|
| |
[C++] И, кстати, двусторонний вектор в цпп это deque 21.04.03 19:50
Автор: amirul <Serge> Статус: The Elderman
|
|
|
|