Параллелизм с использованием статических переменныхC#

Место общения программистов C#
Anonymous
Параллелизм с использованием статических переменных

Сообщение Anonymous »

В приведенном ниже коде, если GetNextNumber() вызывается двумя потоками одновременно, возможно ли, что он вернет одно и то же число обоим потокам?

Код: Выделить всё

class Counter
{
private static int s_Number = 0;
public static int GetNextNumber()
{
s_Number++;
return s_Number;
}
}
Можете ли вы объяснить, почему?

РЕДАКТИРОВАТЬ: Если код может возвращать одно и то же число в оба потока, правильно ли следующее? Допустим, два потока вызывают GetNextNumber(), когда s_Number равен 2. Если возвращается одно и то же значение, то это значение может быть только на 4. Оно не может быть 3. Это правильно?

Подробнее здесь: https://stackoverflow.com/questions/159 ... -variables

Вернуться в «C#»