Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
Есть поток A и B. A создает буффер, отдает его B и активно в него пишет данные, а B эти данные читает. В любой момент данные для B могут стать неактуальными и буфер для B уже будет не нужен, но A продолжает туда писать и остановить его нельзя. С другой стороны A может записать все данные в буффер, но B необходимо некоторое время чтобы их вычитать. Посоветуйте как удалять этот самый буфер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 23:41 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
PeterXaПосоветуйте как удалять этот самый буфер? Лучше всего - никак. Сделать его кольцевым и пусть А не пишет, поке В не прочитает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 23:53 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovPeterXaПосоветуйте как удалять этот самый буфер? Лучше всего - никак. Сделать его кольцевым и пусть А не пишет, поке В не прочитает. Проблемма в том, что данные в A имеют конечный объем - они когда-нибудь кончатся и буфер придется удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 23:57 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
PeterXaПроблемма в том, что данные в A имеют конечный объем - они когда-нибудь кончатся и буфер придется удалять. Зачем? Буфер пустой - он предмет простой, он никуда не денется. И потому буфер пустой гораздо выше ценится. Удалишь когда В будет извещён, что данные кончатся, подтвердит это и умрёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 00:08 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
PeterXa, Используйте std::shared_ptr (или boost::shared_ptr если у вас нет поддержки С++11) для хранения буфера. У каждого потока должна быть своя копия shared_ptr. Когда последняя копия указателя выйдет из области видимости объект будет уничтожен. Эта операция - потокобезопасна. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 01:33 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
PeterXaЕсть поток A и B. A создает буффер, отдает его B и активно в него пишет данные, а B эти данные читает. В любой момент данные для B могут стать неактуальными и буфер для B уже будет не нужен, но A продолжает туда писать и остановить его нельзя. С другой стороны A может записать все данные в буффер, но B необходимо некоторое время чтобы их вычитать. Посоветуйте как удалять этот самый буфер? Получается что у потока А есть какая-то инерция. И он даже получив сигнал сделает еще хотя-бы несколько холостых записей в буфер. Не нужно ему мешать. Пускай сделает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 03:09 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
PeterXaЕсть поток A и B. A создает буффер, отдает его B и активно в него пишет данные, а B эти данные читает. В любой момент данные для B могут стать неактуальными и буфер для B уже будет не нужен, но A продолжает туда писать и остановить его нельзя. С другой стороны A может записать все данные в буффер, но B необходимо некоторое время чтобы их вычитать. Посоветуйте как удалять этот самый буфер? Так а что не ясно ? Синхронизировать-то потоки всё равно надо, а там уж как его удалять -- не проблема, хотя бы тот же счётчик использования сделать, как в 0 -- удаляется буфер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 10:03 |
|
||
|
создание и удаление объектов в многопоточном приложении
|
|||
|---|---|---|---|
|
#18+
PeterXaЕсть поток A и B. A создает буффер, отдает его B и активно в него пишет данные, а B эти данные читает. В любой момент данные для B могут стать неактуальными и буфер для B уже будет не нужен, но A продолжает туда писать и остановить его нельзя. С другой стороны A может записать все данные в буффер, но B необходимо некоторое время чтобы их вычитать. Посоветуйте как удалять этот самый буфер? Что бы небыло лапшекода, удалять должен тот* , кто создавал. *Тот - некий класс** имеющий алокатор-деалокатор. **Класс- тип, а не экземпляр, не имеет значения в какой нити вызываются его методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 12:57 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38198497&tid=2020345]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 423ms |

| 0 / 0 |
