Вот проблема, с которой я сталкиваюсь в классе блокировки .net.
У меня есть несколько потоков, обновляющих счетчик.
Каждый поток должен получить уникальное значение счетчика, поэтому ни один из потоков не должен получить одно и то же значение.
Как работает блокированный класс в .net, у меня -
int counter;
void code(){
myThreadVal = Interlocked.increment(counter);
}
теперь, поскольку оба потока могут видеть одно и то же значение счетчика, они оба могут получить одно и то же значение myThreadVal.
Тем не менее, в случае java AtomicInteger, который никогда не произойдет, каждый поток всегда будет иметь различное значение.