Основная причина, по которой вы хотите заблокировать чтение байтового массива, состоит в том, чтобы избежать «фантомного чтения» или другого неповторяемого чтения - если пишущий находится в процессе обновления массива, читатель может увидеть некоторые старые значения и некоторые новые значения или старое значение, а затем новое значение, если оно снова его читает.
Например, если у вас есть массив, содержащий [1, 2, 3, 4, 5, 6], и поток записи, который принимает SyncLock
и перебирает массив, добавляя 1 к каждому элементу, читатель, который SyncLock
не может видеть странности, подобные [2, 3, 4, 4, 5, 6] - только потоки, которые фактически принимают SyncLock
, получат любую безопасность.