Тут возникла такая проблема (С++, gcc, linux) с многопоточность.
Есть несколько потоков которые работают с общим списком структур, в
каждый из потоков передаётся указатель на этот список.
Для блокировки использую переменную типа int, что то вроде int lock. И
при попытке обратиться к списку я проверяю состояние этой переменной
примерно так
while(1) if(base_object->lock == 0) break;
где base_object указатель на объект класса в котором и создаются потоки.
Вопрос такой, такое использование аналогично использованию mutex'ов или
они (mutex) буду по другому себя вести. Проблемма собственно в том что
в моём варианте, _КАК_МНЕ_КАЖЕТСЯ_, потоки успевают одновременно писать
в список...на знаю правда, как они умудряются проскочить проверку флага
lock.
Заранее спасибо!
Ответ на:
комментарий
от Davidov
Ответ на:
комментарий
от www_linux_org_ru
Ответ на:
комментарий
от www_linux_org_ru
Ответ на:
комментарий
от Davidov
Ответ на:
комментарий
от YesSSS
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от Begemoth
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум И снова про многопоточность (2016)
- Форум Не возникнет ли гонка данных? (2018)
- Форум cpp-worker с расшаренным ресурсом для GUI как? (2019)
- Форум std::bad_function_call на указатель метода класса (2023)
- Форум Конкурирующая очередь в thread C++ (код) (2022)
- Форум Qt и распараллеливание задач (2018)
- Форум Оцените потокобезопасность кода (2016)
- Форум Клиент-Сервер Socket linux (Музыкальный сервис) (2014)
- Форум Задача по оптимизации сервера // С++ (2023)
- Форум Расширенный Си (2016)