volatile Mutex[] _locks; //массив блокировок public RefinableHashSet(int capacity) : base(capacity) //вызываем конструктор базового класса { _locks = new Mutex[capacity]; //инициализируем список блокировок в размере вместимости for (int i = 0; i < capacity; i++) { _locks[i] = new Mutex(); //для каждого бакета инициализируем свой мьютекс (на начальном этапе) } _owner = new AtomicMarkableReference <Thread>(null, false); //никто не меняет размер, поэтому владелец null }
public RefinableHashSet(int capacity) : base(capacity) { _locks = new Mutex[capacity]; for (int i = 0; i < capacity; i++) { _locks[i] = new Mutex(); } _owner = new AtomicMarkableReference <Thread>(null, false); }