Я работаю в программе, которая будет обрабатывать данные несколькими потоками.
Каждый поток должен получить следующий доступный идентификатор, увеличить этот идентификатор на 1 для следующего потока и сделать это безопасным для потока способом.
Это тот случай, когда я бы использовал мьютекс? Должен ли я вместо этого использовать Queue.Synchronized и заполнить его всеми 300 000 идентификаторов или это не нужно?
Должен ли я иметь единственное целое число и каким-то образом заблокировать извлечение и обновление этого числа, чтобы поток1 пришел, получил «20» в качестве следующего идентификатора и затем увеличил его до «21», пока другой поток ожидает?
Какова наилучшая практика для этого варианта использования?