информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителяАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach