Избегайте копирования NSMutableArray для чтения при многопоточной записи

У меня есть класс, который использует изменяемый массив, который изменяется один раз после того, как много чтений (появляются новые элементы ).

Проблема в том, что когда приходит время мутировать массив, считывания продолжают поступать.

В настоящее время, чтобы избежать этой проблемы, каждый раз, когда он что-то читает, он делает это поверх копии :

[[theArray copy] operation] //operation being indexOfObject:, objectAtIndex: objectsAtIndexes:, etc.

. Копирование становится очень дорогим, особенно когда нет необходимости (все те разы, когда массив не мутируется ).

Как я могу заблокировать массив, чтобы отложить доступ к нему при изменении?

5
задан jscs 21 October 2012 в 18:13
поделиться