Транзакция с помощью рандома и задержки
От: Shmj Ниоткуда  
Дата: 23.03.25 09:10
Оценка:
Ну давайте с простого. Имеем:

1. Функция чтения (ну пусть атомарно).
2. Функция записи (так же атомарно).
3. ГСЧ.
4. Функция задержки времени.

Нужно:

1. Считать число (изначально 0).
2. Увеличить число на 1.
3. Записать число.

Но при этом нужно чтобы все это корректно работало в многопоточной среде. Т.е. сколько было вызовов чтения/записи (ну или потоков, который выполнили чтение а затем конечную запись) — столько должно быть установлено значение счетчика.

Добавлю что считывать и записывать — можно произвольное значение, а не только числа.

Так же можно сузить определение гарантированности — считаем что GUID т.е. 16 случайных байт — гарантированно уникальный, что второй такой же не будет создан за время существования Вселенной.

Можно ли как-то гарантировать, не имея мьютексов и пр. блокировок — а только 4 функции из списка?
=сначала спроси у GPT=
Отредактировано 23.03.2025 9:31 Shmj . Предыдущая версия . Еще …
Отредактировано 23.03.2025 9:30 Shmj . Предыдущая версия .
Отредактировано 23.03.2025 9:27 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.