Re: нужен контейнер, потокобезопасный, с неинвалидирующимися
От: landerhigh Пират  
Дата: 08.08.18 11:30
Оценка: :)
Здравствуйте, ksd, Вы писали:

ksd>возможен ли готовый хороший субж в природе?


Нет. Но если возник такой вопрос, то самый правильный ответ — нужно продумывать архитектуру.

ksd>(вектор, лист, сет или их аналоги -- все подойдет)


Сферической потокобезопасности в вакууме не бывает. Ее можно натянуть на контейнеры, которые используются исключительно через операции единичной вставки/чтения (очередь, к примеру)

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

for (auto i = container.begin(); i != container.end(); ++i)
{
    auto some_value = do_something_with(*i);
    call_some_other_code(some_value);
    // another 100500 lines of code
}


Код выше нельзя в общем случае сделать потокобезопасным средствами контейнера.
www.blinnov.com
Отредактировано 08.08.2018 11:39 landerhigh . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.