|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
|||||||
Потоко-безопасная Очередь05.04.2021, 20:16. Показов 13550. Ответов 106
Метки нет (Все метки)
... вырисовалась тема отсюда
а раздельная - вы, наверно, имеете ввиду для LIFO... наверно лучше на list выполнять? sorry, что много вопросов - стою на распутье - даже в отдельную тему вынесла
0
|
|||||||
| 05.04.2021, 20:16 | |
|
Ответы с готовыми решениями:
106
Потоко-независимая очередь записывает 2е команды в одну ячейку. Почему ?
Является ли boost::asio::tcp::acceptor потоко-безопасным ? |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 08.04.2021, 10:58 | |
|
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
|
| 09.04.2021, 19:29 [ТС] | |
|
Concurrency - Remember
честно говоря, видела страшилки, что ABA-problem возникает в producer-consumer архитектуре (используя CV и мьютекс)... оказывается, только для случаев lock-free... может, что-то неправильно запомнила?
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.04.2021, 19:49 | ||
|
1
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 10.04.2021, 08:25 | ||
|
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
||||
| 10.04.2021, 10:56 [ТС] | ||||
в общем, у меня такое ощущение, что главная проблема возникает, когда куча - одна, а ядер - несколько... => проблема в словах для железа- кто current, а кто next для тех или иных контейнеров... хотя проблема, конечно, глубже - успел или не успел write после того, как read... и начал кто-то другой read--modify-write или ещё не успел начать... выходов предлагается много для решения этой проблемы - все с тяжёлой артиллерией (garbage collection, hazard pointers, чтобы универсально, а не только для DCAS архитектур)... поэтому считаю, контейнеры U++ с индексированным доступом (индексы в данном случае - в качестве счётчика) - самыми удобными!.. никаких current-next, никаких искуственных счётчиков, только родные для контейнеров фреймворка, никакой путаницы, простота и безопасность... имхо! p.s. задачка на всякий случай... и ликбез
0
|
||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 10.04.2021, 11:06 | ||
|
С использованием мьютекса, например, это сделать легко.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
|||||
| 10.04.2021, 19:36 [ТС] | |||||
- значит блокировка надёжнее (в любом случае в production не сдают код, работающий только на опр. процессорах - я про DCAS) Добавлено через 14 минут ссылка есть на C++
https__stackoverflow__com__/questions/849786/is-a-lock-wait-free-doubly-linked-list-possible/849837#849837
- всё начинать, наверно, вообще стоит с lock-free memory manager... чтобы эту lock-free спокойно прикручивать к контейнерам... p.s. Lock-Free_DoublyLinkedList - в общем, нелегко... CAS-based algorithm Добавлено через 3 минуты A Fast General Purpose Lock-Free Queue for C++ Добавлено через 3 часа 54 минуты САМОЕ ИНТЕРЕСНОЕ: мне этот пример кажется более понятным, чем про обедающих философов (видя название 2го, я не дочитывала его до конца, всё время откладывая на потом) - то ли дело нормальная постановка вопроса:
0
|
|||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 10.04.2021, 19:40 | |||
|
Я в лыжи обутый, То ли лыжи не едут То ли дедлок....
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
||||||
| 10.04.2021, 20:25 [ТС] | ||||||
|
вот всё-таки интересно, можно ли на лыжах с машиной применить др. подход?
я бы даже предположила, что можно лыжи, машину и юзеров выделить в отдельные классы и лямбдами менять их State - в общем и целом... но с моделью ещё надо разобраться... параллельность судьбы лыж и машины будут под большим вопросом (т.е. лыжи и машина не будут существовать во времени совместно) ![]() Добавлено через 23 минуты ... ладно, отложим пока лыжи, назрела более серьёзная проблема этой ветки
- вот поэтому producer и consumer и работают с одним(!) мьютексом и consumer в состоянии wait - будет ждать... имхо... лыжи
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||||||||
| 10.04.2021, 20:29 | ||||||||||||
0
|
||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
|
| 10.04.2021, 20:36 [ТС] | |
|
там мьютекс m - думаю, всё на одном надо делать, чтобы producer и consumer и их действия были логично упорядочены
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 10.04.2021, 21:35 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
||
| 12.04.2021, 09:11 [ТС] | ||
|
всё-таки проектирование параллельности - тоже надо уметь рисовать в UML - чтобы потом не забыть структуру кода и не вчитываться в него снова
...какой-то UML Online Editor Добавлено через 9 минут и кстати, банально - Two models for concurrent programming... а то я что-то с Actor'ами задумалась -- а ведь у меня так и было до знакомства с shared_memoryДобавлено через 2 минуты самый развёрнутый Multithreading and concurrency - много примеров... Добавлено через 7 минут
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
||||||
| 12.04.2021, 21:38 [ТС] | ||||||
|
а если попробовать сделать на Семафоре Thread-safe Queue, то надо будет использовать и Семафор и Мьютекс??
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.04.2021, 21:42 | ||
|
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
|||
| 12.04.2021, 22:48 [ТС] | |||
|
в общем создаётся ощущение, что эти потоки хорошо для Аудио-Видео контента... ну и для сложных мат. расчётов... иначе и message'ами ОК (как, банковские АТМ часто описываются)...
и как справедливо отметил TRam_ по моей ветке: повторюсь, cv для Win7 и выше -- тут всё сводится к NT kernel - интересная статья 2003 г. c выводом для Win32 - про все подводные камни и фиаско попытки сделать cv на семафоре
как и ваше предупреждение здесь
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.04.2021, 22:57 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,550
|
|
| 12.04.2021, 22:57 [ТС] | |
когда лочить не приходится, то да... поэтому и разделяем бизнес-логику по потокам... а ожидание на cv, да ещё если очередь многомилионная, а ядра всего 4, - всё равно кушает время за счёт switch-context
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.04.2021, 23:08 | ||
|
0
|
||
| 12.04.2021, 23:08 | |
|
Не безопасная форма Безопасная работа Безопасная регистрация
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|