Информация об изменениях

Сообщение Транзакция с помощью рандома и задержки от 23.03.2025 9:10

Изменено 23.03.2025 9:27 Shmj

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

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

Нужно:

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

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

Можно ли как-то гарантировать, не имея мьютексов и пр. блокировок — а только 4 функции из списка?
Транзакция с помощью рандома и задержки
Ну давайте с простого. Имеем:

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

Нужно:

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

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

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

Можно ли как-то гарантировать, не имея мьютексов и пр. блокировок — а только 4 функции из списка?